hdu 1014 Uniform Generator(水 枚举 gcd)
题意:有一个数列 seed[x+1]=(seed(x)+step)%mod
给出 step 和 mod
如果求出的是以 1。。。mod-1 为循环节的数列 则为 good choice
否则 则是 bad choice
思路:1.用标记法 如果 形成循环节时 每个数都被标记到 则good choice
2.当两个数互素时 则 good choice
2.代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; int gcd( int a, int b){ return b==0?a:gcd(b,a%b); } int main() { int a,b; while ( scanf ( "%d%d" ,&a,&b)!=EOF) { printf ( "%10d%10d" ,a,b); printf ( " " ); if (gcd(a,b)==1) printf ( "%s" , "Good Choice\n" ); else printf ( "%s" , "Bad Choice\n" ); printf ( "\n" ); } return 0; } |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步