12169 - Disgruntled Judge(扩展欧几里得+枚举)
2015-07-27 14:46
357 查看
首先枚举所有aa,然后利用扩展欧几里得算法求出bb。之后进行验证。
#include<cstdio> typedef long long LL; using namespace std; const int maxn=210; LL x[maxn]; void exgcd(LL a,LL b,LL& d,LL& x,LL& y){ if(!b) d=a,x=1,y=0; else exgcd(b,a%b,d,y,x),y-=x*(a/b); } int main(){ int t;scanf("%d",&t); for(int i=0;i<t;++i) scanf("%lld",&x[2*i]); t<<=1; for(LL a=0;;++a){ LL k,b,d,tmp=x[2]-a*a*x[0]; exgcd(10001,a+1,d,k,b); if(tmp%d) continue; b=b*tmp/d; bool flag=true; for(int i=1;i<t;++i){ if(i&1) x[i]=(a*x[i-1]+b)%10001; else { if(x[i]!=(a*x[i-1]+b)%10001){ flag=false; break; } } } if(flag) break; } t>>=1; for(int i=0;i<t;++i) printf("%lld\n",x[2*i+1]); return 0; }
相关文章推荐
- 【随行笔记】与网络编程有关
- 关于UML图
- 1.1-1.5-vim编辑器
- Spring MVC整合Mybatis实例
- 创建menu
- IOS第四天(1:图片的方法和缩小,遮罩层)
- 541 最强DE 战斗力【数学和大数处理】
- CodeForces 13E Holes(分块处理)
- 3.9-分区表fstab
- Eclipse快捷键[转]
- BT协议学习笔记4--uTP
- C++map的基本操作和使用 http://blog.sina.com.cn/s/blog_65ed0e8a01010yd3.html
- 四种常见的 POST 提交数据方式
- Spring整合JMS(一)——基于ActiveMQ实现
- POJ 3784.Running Median
- 手动控制事务
- php表单数据验证类
- 用Varnish和Memcached缓存给WordPress网站提速-内存级加速
- Java中AtomicInteger的使用!!!
- 【图论】【启发式搜索】【二分查找】[POJ 3897]Maze Stretching