杭电1014解题报告
来源:互联网 发布:河北广电网络集团地址 编辑:程序博客网 时间:2024/05/21 10:12
说实话,杭电的题有点变态~~~~~~~对格式要求这样严格
本题表面是判断能不能取遍m的余数~~~~~~其实考的是互质~~~~
http://acm.hdu.edu.cn/showproblem.php?pid=1014
#include <stdio.h>int main(){ long int STEP,MOD; while(scanf("%ld%ld",&STEP,&MOD)!=EOF) { int k=1,count=1,M,N; long int seed[100000]; seed[0]=0; seed[k]=(seed[k-1]+STEP)%MOD; while(seed[k]!=seed[0]) { k++; //K 应该在seed[k]=(seed[k-1]+STEP)%MOD前面自增 seed[k]=(seed[k-1]+STEP)%MOD; count++; } if(count==MOD) { printf("%10ld%10ld Good Choice\n\n",STEP,MOD);//Good Choice前面有4个空格,5个空格不给过的。
} else { printf("%10ld%10ld Bad Choice\n\n",STEP,MOD);//而且必须2个\n,否则也不给过。悲催死. } } return 0;}
以下是摘得大牛的代码,供参考~~~~~
#include <iostream> #include <iomanip> using namespace std; inline int prand(); int seed, step, mod; int main() { int head, tail, decreasor = 0; while (cin >> step >> mod && mod) { decreasor = 0; seed = 0; // 第一个随机数 head = prand(); // 在 0 到 mod-1 的范围内,所以整数的总和 for (int i = 0; i < mod; i++) decreasor += i; // 减去第一个随机数 decreasor = decreasor - head; // 如果是good choice,decreasor 将在第二个重复周期前减至 0 while (head != (tail = prand())) { decreasor -= tail; } cout << setw(10) << step << setw(10) << mod << " "; if (decreasor) cout << "Bad Choice"; else cout << "Good Choice"; cout << endl << endl; } return 0; } // 随机数产生器 inline int prand() { seed = (seed + step) % mod; return seed; }
本题其实考察的是两个数的互质,如果两个数互质输出good choice 否则输出bad choice
看透题就这样简单的 爱 当初做这道题我就没看透题。
- 杭电1014解题报告
- 杭电1008解题报告
- 杭电1160解题报告
- 杭电1176解题报告
- 杭电2059解题报告
- 杭电HDOJ1024 解题报告
- 杭电2028解题报告
- 杭电3342解题报告
- 杭电Robberies解题报告
- 杭电1061 解题报告
- 杭电ACM1800解题报告
- 杭电1045解题报告
- 杭电1050解题报告
- 杭电2037解题报告
- 杭电1051解题报告
- 杭电2041解题报告
- 杭电2044解题报告
- 杭电2046解题报告
- MATLAB对于文本文件(txt)数据读取的技巧总结
- android导入项目@override编译错误解决方法
- 神唱3dktv软件-由我世界(uworld)
- 我的第一个半平面交(1007: [HNOI2008]水平可见直线)
- google code使用
- 杭电1014解题报告
- SQL Server 2008 以SQL Server的身份连接不了
- linux下c/c++ 初学者问答
- 教你购入Galaxy Nexus 新机该如何验机!
- 函数
- 线程并发之回顾传统线程创建,定时器及线程间的通讯
- SQL常用的函数
- make menuconfig error
- 我们是太迫于和擅长Google了吧