HDU3579 Hello Kiki 解线性同余方程的应用
2013-11-05 16:21
225 查看
解析不写了,原理还是看 poj2891的题解 :http://blog.csdn.net/u010682557/article/details/14146251
很典型的看出 x≡Ai(mod Mi)求解,解线性同余方程的应用,
写完一直WA,后来仔细一看,题目要求输出的是最小的正整数解,所以当同余方程组的解为0的时候,就要输出 Mi 的最小公倍数
估计没少有人被坑吧
很典型的看出 x≡Ai(mod Mi)求解,解线性同余方程的应用,
写完一直WA,后来仔细一看,题目要求输出的是最小的正整数解,所以当同余方程组的解为0的时候,就要输出 Mi 的最小公倍数
估计没少有人被坑吧
#include<iostream> #include<cstdio> #include<list> #include<algorithm> #include<cstring> #include<string> #include<queue> #include<stack> #include<map> #include<vector> #include<cmath> #include<memory.h> #include<set> #define ll long long #define LL __int64 #define eps 1e-8 #define e 2.718281828 //const ll INF=9999999999999; #define M 400000100 #define inf 0xfffffff using namespace std; //vector<pair<int,int> > G; //typedef pair<int,int> P; //vector<pair<int,int>> ::iterator iter; // //map<ll,int>mp; //map<ll,int>::iterator p; // //vector<int>G[30012]; ll aa[12],rr[12]; ll GCD(ll a,ll b) { if(b==0) return a; return GCD(b,a%b); } ll exgcd(ll a,ll &x,ll b,ll &y) { if(b==0) { x=1; y=0; return a; } ll r=exgcd(b,x,a%b,y); ll tmp=x; x=y; y=tmp-a/b*y; return r; } int main(void) { int t; int Case=0; ll n; cin>>t; while(t--) { cin>>n; ll lcm=1; for(int i=0;i<n;i++) { cin>>aa[i]; lcm=lcm*aa[i]/GCD(aa[i],lcm); } for(int i=0;i<n;i++) cin>>rr[i]; ll x0,y0; bool flag=false; for(int i=1;i<n;i++) { ll a=aa[0],b=aa[i],c=rr[i]-rr[0]; ll gcd=exgcd(a,x0,b,y0); if(c%gcd!=0) { flag=true; break; } ll MOD=b/gcd; x0=(x0*c/gcd%MOD+MOD)%MOD; rr[0]=aa[0]*x0+rr[0]; aa[0]*=(aa[i]/gcd); } printf("Case %d: ",++Case); if(flag) puts("-1"); else { if(rr[0]!=0) cout<<rr[0]<<endl; else cout<<lcm<<endl; } } }
相关文章推荐
- HDU1930 And Now, a Remainder from Our Sponsor 解线性同余方程的应用
- 解线性同余方程的应用(一)
- 【数论】【扩展欧几里得】hdu3579 Hello Kiki
- poj2891 Strange Way to Express Integers 解线性同余方程的应用
- HDU3579 线性同余方程(模板 余数不一定互质)
- 解线性同余方程的应用
- hdu3579 Hello Kiki(数论)
- hdu 3579 Hello Kiki(线性同余方程)
- HDU3579:Hello Kiki(解一元线性同余方程组)
- 【hdu3579-Hello Kiki】拓展欧几里得-同余方程组
- hdu3579 Hello Kiki(数论)
- HDU3579 一元线性同余方程
- HDU3579 Hello Kiki(CRT非互质)
- HDU1573 X问题 解线性同余方程的应用
- HDU3579 Hello Kiki【一元线性同余方程组】
- 应用中国剩余定理解线性同余方程组(不懂)
- hdu3579(线性同余方程组)
- 线性同余方程初步应用分析
- Hello Kiki(hdu3579线性同与方程)
- Java.util包简介并教您如何开发应用之二 (3)