HDU5478 Can you find it
来源:互联网 发布:喀秋莎视频编辑软件 编辑:程序博客网 时间:2024/05/01 06:15
题目链接
题意:给定 C,k1, b1, k2 找出所有的(a, b)满足
思路:n = 1时,找出(1,C)范围内的满足的(a, b)组合,然后暴力枚举n,把符合的留下
代码如下:
#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>#include <string>using namespace std;typedef __int64 ll;const int N = 1e5+10;ll C, k1, b1, k2;ll a[2*N], b[2*N];ll pow_mod(ll x, ll y, ll k){ll s = 1;while(y){if (y % 2)s = (s * x)%k;x = (x * x)%k;y >>= 1;}return s;}int main(){ int cas = 1;while(~scanf("%I64d%I64d%I64d%I64d", &C, &k1, &b1, &k2)){printf("Case #%d:\n", cas++);for(ll i = 1; i < C; i++){ll cnt = pow_mod(i, k1 + b1, C);a[i] = i;b[i] = (cnt / C + 1) * C - cnt;}bool flag; ll ans = 0;for(ll i = 1; i < C; i++){flag = 0;for(ll j = 2; j <= 100; j++){if((pow_mod(a[i], k1 * j + b1, C) + pow_mod(b[i], k2 * (j-1) + 1, C)) % C){ flag = 1;break;}}if(!flag){ans++; printf("%I64d %I64d\n", a[i], b[i]);}}if(ans == 0) printf("-1\n");}return 0;}
0 0
- HDU5478 Can you find it
- hdu5478 Can you find it
- HDU5478 Can you find it 快速幂取模
- hdu5478 Can you find it(数学规律)
- HDU5478 Can you find it (快速幂)
- hdu5478 Can you find it(数学)
- hdu5478 Can you find it+快速幂
- HDU5478 Can you find it【同余问题】
- HDU5478——Can you find it(快速幂)
- can you find it?
- Can you find it?
- Can you find it?
- Can you find it?
- can you find it?
- Can you find it?
- can you find it?
- Can you find it?
- Can you find it?
- Sum Up 2729 (进制模拟) 好题
- java中static作用详解
- 关于错误“对象不能从 DBNull 转换为其他类型”
- 进入的包到第4层
- 解决PowerDesigner复制字段修改联动的问题
- HDU5478 Can you find it
- 线段树的基本操作
- POJ1741 点分治
- 排序算法(JS)
- 计算语言学课程笔记(二)
- 笔试小结--链表逆置
- Dummy variable (变量dummy化)
- 每天一道编程题(3)
- HDU5479一串括号转化为没有非空字串是匹配的