打卡信奥刷题(3004)用C++实现信奥题 P6202 [USACO07CHN] Summing Sums G
P6202 [USACO07CHN] Summing Sums G题目描述N NN头奶牛1 ≤ N ≤ 5 × 10 4 1 \leq N \leq 5 \times 10^41≤N≤5×104刚刚学习了不少密码学知识终于她们创造出了属于奶牛的加密方法由于她们经验不足她们的加密方法很简单第i ii头奶牛掌握着密码的第i ii个数字起始的时候是C i C_iCi0 ≤ C i 9 × 10 7 0 \leq C_i \lt 9 \times 10^70≤Ci9×107。加密的时候第i ii头奶牛会计算其他所有奶牛的数字和并将这个和对98 765 431 98\,765\,43198765431取模。在所有奶牛计算完成后每头奶牛都会用自己算的数字代替原来的数字。即C i ′ ( ∑ k 1 N C k − C i ) m o d 98 765 431 C_{i}(\sum_{k1}^NC_k-C_i) \bmod 98\,765\,431Ci′(k1∑NCk−Ci)mod98765431这样她们完成了一次加密。在十一月奶牛们把这个加密方法告诉了驼鹿卡门。卡门想了一会后说“你们的算法还很原始为了达到加密效果你们要重复这个加密过程T TT次1 ≤ T ≤ 1 414 213 562 1 \leq T \leq 1\,414\,213\,5621≤T≤1414213562”。奶牛们很懒于是就把这个任务交给了你。输入格式第一行两个整数N , T N,TN,T。接下来N NN行第i ii行一个整数C i C_iCi。输出格式输出N NN行第i ii行一个整数代表经过T TT次加密后的C i C_iCi。输入输出样例 #1输入 #13 4 1 0 4输出 #126 25 29说明/提示每次加密后的C i C_iCi如下次数C 1 C_1C1C 2 C_2C2C 3 C_3C301041451265931415114262529C实现#includebits/stdc.h#defineintlonglongusingnamespacestd;constintmod98765431,N5e45;intc[N];intfpow(inta,intb){intans1;a%mod;while(b0){if(b%21){ans(ans*a)%mod;}a(a*a)%mod;b/2;}returnans;}intinv(intn){returnfpow(n,mod-2);}signedmain(){ios::sync_with_stdio(false);cin.tie(NULL);intn,t,sum0;cinnt;for(inti1;in;i){cinc[i];sum(sumc[i])%mod;}intf(t%20)?1:(mod-1),tot((sum*inv(n))%mod*(fpow(n-1,t)-fmod)%mod)%mod;for(inti1;in;i){cout((f*c[i])%modtot)%mod\n;}return0;}后续接下来我会不断用C来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现记录日常的编程生活、比赛心得感兴趣的请关注我后续将继续分享相关内容
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2445594.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!