12169 - Disgruntled Judge
来源:互联网 发布:java获取访问者ip 编辑:程序博客网 时间:2024/06/14 04:06
枚举a和b。。。耗时0.126 显然这不是最好的方法,最好的方法是至需枚举a,利用扩展欧几里德算法求出线性模方程。求的b;其实我也还没有理解,等学会了再来更新。
我来兑现承诺了。下面给出运用扩展欧几里德算法求出的方法,时间0.025 根据x1、x3、a我们可以得出这样的公式:x3-a*a*x1=(a+1)b+10001*(-k) 根据紫书331夜(精华在312页最上面) 我们可以轻松的求出b 但是这个过程中a*b有可能会溢出,这题就一定会溢出,所以要用long long 最后得出的b还要乘上c/d
#include<bits/stdc++.h>using namespace std;int T,a[109],b[109];void solve() { for(int i=10000;i>=0;--i) for(int j=10000;j>=0;--j){ int kase=0; bool ok=true; while(1) { b[kase++]=(i*a[kase]+j)%10001; if(kase==T) break; int x3=(i*b[kase-1]+j)%10001; if(a[kase+1]==x3) continue;//检查是否符合输入序列 else { ok=false;break; } } if(ok) return;//如果成功就返回。 }}int main() { scanf("%d",&T) ; for(int i=1;i<=T;i++){ scanf("%d",&a[i]); } solve(); for(int i=0;i<T;i++) printf("%d\n",b[i]); return 0;}/***********************************************************************************************************/
#include<bits/stdc++.h>using namespace std;typedef long long LL;LL T,x1[109],x2[109];void gcd(LL a,LL b,LL& d,LL& x,LL& y) { if(!b) { d=a; x=1; y=0; } else { gcd(b,a%b,d,y,x); y-=x*(a/b); }}void solve() { for(int a=10000;a>=0;--a){ LL d,b,k,c=x1[2]-a*a*x1[1]; gcd(a+1,10001,d,b,k); if(c%d) continue; else { b=b*c/d; int kase=0; bool ok=true; while(1) { x2[kase++]=(a*x1[kase]+b)%10001; if(kase==T) break; if(x1[kase+1]==((a*x2[kase-1]+b)%10001)) continue; else { ok=false; break; } } if(ok) return ; } }}int main() { scanf("%lld",&T); for(int i=1;i<=T;i++) scanf("%lld",&x1[i]); solve(); for(int i=0;i<T;i++) printf("%lld\n",x2[i]); return 0;}
1 0
- UVA 12169 - Disgruntled Judge
- 12169 - Disgruntled Judge
- uva 12169 Disgruntled Judge
- UVA - 12169 Disgruntled Judge
- UVa 12169 Disgruntled Judge
- UVA 12169 Disgruntled Judge(暴力)
- UVA 12169(p316)----Disgruntled Judge
- UVA-12169 - Disgruntled Judge(数学+枚举)
- uvaoj 12169 Disgruntled Judge 扩展欧几里得算法
- Uva 12169 Disgruntled Judge 扩展欧几里得,暴力
- uva 12169 - Disgruntled Judge(暴力or欧几里得 )
- UVA 12169 Disgruntled Judge (拓展欧几里德)
- UVA 12169 Disgruntled Judge (扩展欧几里得)
- UVA.12169 Disgruntled Judge ( 拓展欧几里得 )
- UVA-12169 Disgruntled Judge(扩展欧几里得)
- 【数论】[Uva12169]Disgruntled Judge
- 【NWERC2008】uva12169 Disgruntled Judge
- Disgruntled Judge UVA
- 实操 VM Player和Instant Contiki安装
- BZOJ 3670 [NOI 2014] 动物园
- 从零开始SQL注入之三
- 关于c++的测试
- 【spring框架】关于DataSource(下)
- 12169 - Disgruntled Judge
- IOS UI_视频播放器_MPMoviePlayerController
- sscanf()函数总结
- Python 装饰器
- 第3周项目4-考了语文数学的学生(多文件形式组织程序)
- android开发者的42个必读网站
- 十大Intellij IDEA快捷键
- java类初始化顺序 ----需要研究的
- Android SDK开发包国内下载地址