int crt(int a[],int m[],int n)
{
int M=1,ret=0,tm;
for(int i=0;i<n;i++)
M*=m[i];
for(int i=0;i<n;i++)
{
int x,y;
tm=M/m[i];
extend_gcd(tm,m[i],x,y);
ret=(ret+tm*x*a[i])%M;
}
return (ret+M)%M;
}
中国剩余定理(模板)
最新推荐文章于 2020-09-01 18:18:00 发布