标签:
2 2 14 57 5 56 5 19 54 40 24 80 11 2 36 20 76
Case 1: 341 Case 2: 5996
#include<stdio.h>
int M[10],A[10];
int n;
void EXGCD(int a,int b,int &x,int &y,int &c){
if(b==0){
x=1;
y=0;
c=a;
return;
}
EXGCD(b,a%b,x,y,c);
int temp=x;
x=y;
y=temp-a/b*y;
}
int China_2(int M[],int B[]){
int a1=M[0],b1=B[0];
int ok=0,d,x,y,c,i;
for(i=1;i<n;++i){
if(ok) continue;
EXGCD(a1,M[i],x,y,c);
d=B[i]-b1;
if(d%c){
ok=1;
continue;
}
int q=M[i]/c;
x=(x*d/c%q+q)%q;
b1=a1*x+b1;
a1=a1*M[i]/c; // a1 与 M[i] 的最小公倍数
}
if(ok) return -1;
else return b1?b1:b1+a1;
}
int main(){
int t,ncas=0;
scanf("%d",&t);
while(t--){
ncas++;
int i;
scanf("%d",&n);
for(i=0;i<n;++i){
scanf("%d",&M[i]);
}
for(i=0;i<n;++i){
scanf("%d",&A[i]);
}
printf("Case %d: %d\n",ncas,China_2(M,A));
}
return 0;
}版权声明:本文为博主原创文章,未经博主允许不得转载。
hdoj-3579-Hello Kiki【中国剩余定理 & 除数不互质】
标签:
原文地址:http://blog.csdn.net/qq_18062811/article/details/47299027