HDU5478Can you find it(快速幂)
来源:互联网 发布:威海市南海新区知乎 编辑:程序博客网 时间:2024/06/05 11:28
题意:给你C,k1,k2,b1,按字典序输出满足的所有(a,b)对
解题思路:因为对于任意n均满足,故n=1的情况也是符合的,故可得
①
而n=2的情况也是符合的,可得
②
因为①式mod C = 0 ,所以①式乘以一个数mod C 仍为0,不妨①式*,可得
所以,我们只需遍历一遍a的取值(1~C-1),利用快速幂计算出,以及,再根据式①可以算出b,再用一次快速幂求出,比较(mod C)是否等于(mod C)即可
#include<bits/stdc++.h>using namespace std;typedef long long ll;ll pow_mod (ll x, int n, int mod){ ll ret = 1; while (n) { if (n&1) ret = ret * x % mod; x = x * x % mod; n >>= 1; } return ret;}int main (){ int cas = 1, C, k1, b1, k2; while (scanf("%d%d%d%d", &C, &k1, &b1, &k2) == 4) { printf("Case #%d:\n", cas++); int cnt = 0; for (int a = 1; a < C; a++) { int b = C - pow_mod(a, k1+b1, C); if (pow_mod(a, k1, C) == pow_mod(b, k2, C)) { printf("%d %d\n", a, b); cnt++; } } if (cnt == 0) printf("-1\n"); } return 0;}
阅读全文
0 0
- HDU5478Can you find it(快速幂)
- 周中训练笔记+HDU5478Can you find it【快速幂】
- hdu5478Can you find it
- HDU5478 Can you find it (快速幂)
- hdu5478 Can you find it+快速幂
- hdoj 5478 Can you find it 【找恒等式 + 快速幂】
- hdoj5478Can you find it【暴力枚举+快速幂】
- HDU5478——Can you find it(快速幂)
- HDU5478 Can you find it 快速幂取模
- hdu2141Can you find it?
- can you find it?
- Can you find it?
- hdu2141Can you find it?
- Can you find it?
- HDU2141Can you find it?
- hdu2141Can you find it?
- Can you find it?
- can you find it?
- 关于PL/SQL与Oracle Database 12c …
- Response.StatusCode的HTTP…
- 拆解VCM音圈马达,原理、结构
- [Python3爬虫从入门到精通]中国大…
- Java并发编程:CountDownLatch、CyclicBarrier和Semaphore
- HDU5478Can you find it(快速幂)
- zookeeper原理
- leetcode 44. Wildcard Matching (需要好好想一下)
- 2015年3月CCF计算机软件能力认证题:节日
- CodeChef Protecting The Poison【贪心】
- Linux 下的静态(函数)库、动态(函数)库
- LInux中逻辑卷删除创建命令备忘
- 怎样借助Spring boot快速实现一个简单的http服务器
- 屏幕适配