Description

Input

第一行是三个正整数P,Q,R,表示切糕的长P、 宽Q、高R。第二行有一个非负整数D,表示光滑性要求。接下来是R个P行Q列的矩阵,第z个 矩阵的第x行第y列是v(x,y,z) (1≤x≤P, 1≤y≤Q, 1≤z≤R)。
100%的数据满足P,Q,R≤40,0≤D≤R,且给出的所有的不和谐值不超过1000。

Output

仅包含一个整数,表示在合法基础上最小的总不和谐值。

Sample Input

2 2 2
1
6 1
6 1
2 6
2 6

Sample Output

6

HINT

最佳切面的f为f(1,1)=f(2,1)=2,f(1,2)=f(2,2)=1

/*个人感觉很神的一道题目。如果有解的话,会有一个p满足:(10^x-1)/9*8=L*p => 10^x-1=9*L*p/8设m=9*L/gcd(L,8)则存在p1使得 10^x-1=m*p1 => 10^x=1(mod m)根据欧拉定理 10^φ(m)=1(mod m)所以x一定是φ(m)的因数(这好像是某个定理)。
*/
#include<iostream>
#include<cstdio>
#define lon long long
#define N 400010
#ifdef unix
#define LL "%lld"
#else
#define LL "%I64d"
#endif
using namespace std;
int prime[N],f[N],num,qlen;
lon q[N];
void get_prime(){for(int i=2;i<N;i++){if(!f[i]) prime[++num]=i;for(int j=1;j<=num;j++){if(i*prime[j]>=N) break;f[i*prime[j]]=1;if(i%prime[j]==0) break;}}
}
lon gcd(lon a,lon b){if(!b) return a;return gcd(b,a%b);
}
lon euler(lon x){lon res=x;for(lon i=2;i*i<=x;i++)if(x%i==0){res-=res/i;while(x%i==0) x/=i;}if(x>1) res-=res/x;return res;
}
void get_q(lon n){qlen=0;for(int i=1;i<=num&&n>1;i++){while(n%(lon)prime[i]==0){n/=prime[i];q[++qlen]=prime[i];}}if(n>1) q[++qlen]=n;
}
lon mul(lon a,lon b,lon mod){lon base=a,r=0;while(b){if(b&1) r+=base;r%=mod;base+=base;base%=mod;b>>=1;}return r;
}
lon poww(lon a,lon b,lon mod){lon base=a,r=1;while(b){if(b&1) r=mul(r,base,mod);base=mul(base,base,mod);b>>=1;}return r;
}
int main(){int cas=0;lon L;get_prime();while(scanf(LL,&L)&&L){lon m=9*L/gcd(L,8);if(gcd(m,10)>1){printf("Case %d: 0\n",++cas);continue;}lon x=euler(m);get_q(x);for(int i=1;i<=qlen;i++){if(poww(10,x/q[i],m)==1){x/=q[i];}}printf("Case %d: ",++cas);printf(LL,x);printf("\n");}return 0;
}

转载于:https://www.cnblogs.com/harden/p/6517220.html

切糕(bzoj 3144)相关推荐

  1. bzoj 3144(最小割)

    传送门 最小割,主要考查建边的思路.本蒟蒻也是看了好几位大佬的博客才看懂.比如: 参考1 参考2 (x,y,z)连接(x,y,z+1)容量为f(x,y,z) (x,y,z)连接(x',y',z-d)容 ...

  2. BZOJ 3144 [HNOI2013]切糕 (最大流+巧妙的建图)

    题面:洛谷传送门 BZOJ传送门 最大流神题 把点权转化为边权,切糕里每个点$(i,j,k)$向$(i,j,k+1)$连一条流量为$v(i,j,k)$的边 源点$S$向第$1$层的点连边,第$R+1$ ...

  3. BZOJ 3144 [Hnoi2013]切糕

    3144: [Hnoi2013]切糕 Description Input 第一行是三个正整数P,Q,R,表示切糕的长P. 宽Q.高R.第二行有一个非负整数D,表示光滑性要求.接下来是R个P行Q列的矩阵 ...

  4. bzoj 3144: [Hnoi2013]切糕

    Description Input 第一行是三个正整数P,Q,R,表示切糕的长P. 宽Q.高R.第二行有一个非负整数D,表示光滑性要求.接下来是R个P行Q列的矩阵,第z个 矩阵的第x行第y列是v(x, ...

  5. BZOJ.3144.[HNOI2013]切糕(最小割)

    题目链接 没有\(D\)的限制怎么做?"最小"我们可以想到最小割,把同一纵轴上的点串起来,分别连到S,T,最小割就是答案.(在这把点权放到前一条边上) 有限制,即如果要割点\(i\ ...

  6. CodeForces - 434D Nanami's Power Plant

    Codeforces - 434D 题目大意: 给定一个长为n的序列,序列中的第i为上的值\(x_i\),序列第i位上的值\(x_i\in[l_i,r_i]\),价值为\(f_i(x_i)\),其中\ ...

  7. 3144: [Hnoi2013]切糕

    3144: [Hnoi2013]切糕 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 1526  Solved: 827 [Submit][Statu ...

  8. ●BOZJ 3144 [Hnoi2013]切糕

    题链: http://www.lydsy.com/JudgeOnline/problem.php?id=3144 题解: "这是一个经典的最小割模型" ---引用自别人的博客 .. ...

  9. BZOJ ac100题存档

    不知不觉AC100题了,放眼望去好像都是水题.在这里就做一个存档吧(特别感谢各位大神尤其是云神http://hi.baidu.com/greencloud和丽洁姐http://wjmzbmr.com/ ...

最新文章

  1. oracle asm clsecho,ASM磁盘组一点管理
  2. 基于OpenStreetMap计算驾车距离(Java)
  3. 我使用阿里云做直播,有什么手段保护直播安全?
  4. Silverlight 视频学习札记(一)
  5. 如何获取exe,dll中的图标以及源程序
  6. Linux中用户与组群管理
  7. Windows域环境下的网络问题
  8. 5寸照片尺寸_证件照尺寸及更换背景颜色教程
  9. 紫光华宇拼音输入法 6.1 正式版
  10. 英国外交部翻译教你实用口语课,让你飚出一口地道、流利英语
  11. Python 输出对齐
  12. 如何下载react依赖包
  13. Python 爬虫下载喜马拉雅音频文件
  14. 【转】机器学习embedding
  15. csp-s2020 儒略日(含源代码)
  16. VMware新建OracleLinux6.5虚拟机
  17. 正则表达式(参考百度词条)
  18. 币圈拉盘是什么意思?
  19. 向插件中添加guc参数
  20. 将汉字转换为Unicode编码vb.net源码

热门文章

  1. 在EA中画ER图和数据模型图
  2. 任务和特权级保护(四)——《x86汇编语言:从实模式到保护模式》读书笔记35
  3. Python数据收集及分析学习相关
  4. 区块链学堂(6):以太坊生产网络/测试网络/私有网络
  5. Android 异步消息处理机制(Handler 、 Looper 、MessageQueue)源码解析
  6. Android apk动态加载机制的研究
  7. rhel7安装vnc出现error: Failed dependencies:
  8. python2.7显示中文_Python 2.7中文显示与处理方法
  9. base64编码_几分钟看懂Base64编码原理
  10. JZOJ 5616. 【NOI2018模拟3.31】沧海尘记