uva12169(扩展欧几里得)
来源:互联网 发布:excel不规则数据分列 编辑:程序博客网 时间:2024/05/29 14:10
题目的大意是给你一个递推式Xi = (a*Xi-1+ b ) Mod 10001,然后告诉奇数项,要你求出偶数项。
解法就是枚举a,然后根据前两个奇数项算出b。
可以推出下面的式子:
然后因为gcd(a+1,10001) = 1,然后根据扩展欧几里得算出b来,随后再来验证,如果正确即为满足条件的解。
#include "stdio.h"#include "string.h"#include "math.h"#include <string>#include <queue>#include <stack>#include <vector>#include <map>#include <algorithm>#include <iostream>using namespace std;#define MAXM 1#define MAXN 1#define max(a,b) a > b ? a : b#define min(a,b) a < b ? a : b#define Mem(a,b) memset(a,b,sizeof(a))int Mod = 10001;double pi = acos(-1.0);double eps = 1e-6;typedef struct{int f,t,w,next;}Edge;Edge edge[MAXM];int head[MAXN];int kNum;void addEdge(int f, int t, int w){edge[kNum].f = f;edge[kNum].t = t;edge[kNum].w = w;edge[kNum].next = head[f];head[f] = kNum ++;}int T, num[105];void exgcd(int a, int b, int &x, int &y){if( !b ){x = 1, y = 0;}else{exgcd(b, a%b, y, x);y -= x * ( a / b);}}void solve(){for(int a = 0; a <= 10000; a ++){int p = ( a + 1 ) % Mod, q = 10001, r = 0, s = 0;exgcd(p, q, r, s); //求出来的r即为解 不过此时方程是等于1,不是x3 - a^2 x1, 下面还要乘上它r = ( num[1] - a * a % Mod * num[0] % Mod + Mod) % Mod * r % Mod;int temp = (a * num[0] + r) % Mod;int i;for(i = 1; i < T; i ++){int flag = (a * temp + r) % Mod;if( num[i] != flag) break;temp = (a * num[i] + r) % Mod;}if(i == T){for(int j = 0; j < T; j ++){printf("%d\n", (a * num[j] + r) % Mod);}break;}}}int main(){//freopen("d:\\test.txt", "r", stdin);while(cin>>T){for(int i = 0; i < T; i ++){cin>>num[i];}solve();}return 0;}
0 0
- uva12169(扩展欧几里得)
- UVa12169 - Disgruntled Judge (扩展欧几里得)
- 例10-2 uva12169(扩展欧几里得)
- UVa12169(拓展欧几里得)
- 扩展欧几里得应用解不定方程(uva12169,Disgruntled Judge,NWERC 2008)
- UVa12169 - Disgruntled Judge(模运算、拓展欧几里得)
- UVA12169
- 【欧几里得&扩展欧几里得】
- 欧几里得和扩展欧几里得
- 欧几里得 与 扩展欧几里得
- 欧几里得&扩展欧几里得
- 欧几里得和扩展欧几里得
- 欧几里得与扩展欧几里得
- 欧几里得和扩展欧几里得
- 欧几里得 与 扩展欧几里得
- 欧几里得 扩展欧几里得
- 欧几里得与扩展欧几里得
- 欧几里得 & 扩展欧几里得
- Windows server 2008 安装Hyper-V
- jsp页面完美的分页代码,每次显示十条分页链接。
- C++ - 动态申请数组空间
- java下的大型网站对图片的下载,存放,及压缩管理
- 自定义dialog的使用
- uva12169(扩展欧几里得)
- String与StringBuffer的区别
- 一个静态UITabelView的解决方案----CTStaticTableView
- 微信JS接口 分享到朋友圈 分享给朋友 分享到QQ 拍照或从手机相册中选图 识别音频并返回识别结果 使用微信内置地图查看位置
- Python模块学习 ---- datetime
- UI基础—UITableView
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- NSNotificationCenter 的使用详解
- cocos node sceen