HDU's ACM 1014 Uniform Generator

来源:互联网 发布:使命召唤ol自由数据 编辑:程序博客网 时间:2024/05/22 13:01

原题链接:HDU's ACM 1014 Uniform Generator


分析:seed[x+1] = (seed[x] + STEP) % MOD;因为STEP及MOD一定,故seed[x]相同则seed[x+1]必相同。又第一个数字必然是0,所以若出现循环,则循环第一个数也为0,否则出现悖论。


WA Code:

<span style="font-size:14px;">#include <stdio.h>#include <string.h>#define MAXN 100010int seed[MAXN];int main(){int step, mod;int i, cur, next;while(scanf("%d%d", &step, &mod)==2) {memset(seed, MAXN, 0);cur = 0;seed[cur] = 1;i = 1;while(i<mod) {next = (cur+step)%mod;if(!seed[next]) {seed[(cur+step)%mod] = 1;cur = next;++i;} else {break;}}printf("%10d%10d", step, mod);if(i == mod)printf("    Good Choice\n");elseprintf("    Bad Choice\n");printf("\n");}return 0;}</span>

AC Code:

<span style="font-size:14px;">#include <stdio.h>int main(){int step, mod, cur, next;int i;while(scanf("%d%d", &step, &mod) == 2){printf("%10d%10d", step, mod);cur = 0;next = (cur+step)%mod;for(i=1;i<mod;++i){cur = next;if(!cur)break;next = (cur+step)%mod;}if(i == mod){printf("    Good Choice\n\n");} else {printf("    Bad Choice\n\n");}}return 0;}</span>

0 0
原创粉丝点击