Disgruntled Judge UVA
来源:互联网 发布:车床倒角编程 编辑:程序博客网 时间:2024/06/05 11:36
题目传送门
题意:给你一个递推式x[i] = (a * x[i - 1] + b) mod 10001,然后输入T,x[1], x[3], ….., x[2 * T - 1],求出剩下的序列。
思路:我们可以枚举a的值,然后用扩展欧几里得来求出来b然后进行验证当前的a,b是不是可以构成整个序列。
#include <algorithm>#include <cmath>#include <cstdio>#include <cstring>#include <iostream>#include <list>#include <map>#include <queue>#include <set>#include <stack>#include <string>#include <vector>#define MAXN 11000#define MAXE 5#define INF 100000000#define MOD 10001#define LL long long#define pi 3.14159using namespace std;LL arr[MAXN];void exgcd(LL a, LL b, LL &d, LL &x, LL &y) { if (b == 0) { d = a; x = 1; y = 0; } else { exgcd(b, a % b, d, y, x); y -= x * (a / b); }}int main() { std::ios::sync_with_stdio(false); int T; while (cin >> T) { for (int i = 1; i <= 2 * T; i += 2) { cin >> arr[i]; } LL a, b; LL x = 0, y = 0, d = 0; for (a = 1; a <= 10000; ++a) { exgcd(MOD, a + 1, d, x, y); if ((a * a * arr[1] - arr[3]) % d == 0) { y = y * (a * a * arr[1] - arr[3]) / d; if (y < 0) { b = -y; } else { b = y; } b %= MOD; bool flag = true; for (int j = 2; j <= 2 * T; ++j) { if (j % 2) { if (arr[j] != (arr[j - 1] * a + b) % MOD) { flag = false; break; } } else { arr[j] = (arr[j - 1] * a + b) % MOD; } } if (flag) { break; } } } for (int i = 2; i <= 2 * T; i += 2) { cout << arr[i] << endl; } } return 0;}/*3178223014 */
阅读全文
0 0
- UVA 12169 - Disgruntled Judge
- uva 12169 Disgruntled Judge
- UVA - 12169 Disgruntled Judge
- UVa 12169 Disgruntled Judge
- Disgruntled Judge UVA
- Disgruntled Judge UVA
- Disgruntled Judge UVA
- Disgruntled Judge UVA
- Disgruntled Judge UVA
- Disgruntled Judge UVa 10375
- UVA 12169 Disgruntled Judge(暴力)
- UVA 12169(p316)----Disgruntled Judge
- UVA-12169 - Disgruntled Judge(数学+枚举)
- Uva 12169 Disgruntled Judge 扩展欧几里得,暴力
- uva 12169 - Disgruntled Judge(暴力or欧几里得 )
- UVA 12169 Disgruntled Judge (拓展欧几里德)
- UVA 12169 Disgruntled Judge (扩展欧几里得)
- UVA 12196 Disgruntled Judge 拓展欧几里德算法
- 羽化
- C#中Invoke的用法()
- 解决VS中提示信息没有自动选中首选项的问题
- ext3.4工具条字段太多如何换行
- hadoop的配置与用法
- Disgruntled Judge UVA
- java中静态和非静态方法之间的相互调用
- 前端-EXTJS三级联动
- 在ROS中如何配置机器人的导航功能
- java 逻辑右移,算术右移
- 将keil中的数据用MATLAB绘成波形
- TCP三次握手四次挥手
- DOM
- 前端学习网址升级(值得拥有)