算法模板之中国剩余定理

来源:互联网 发布:平面广告设计软件下载 编辑:程序博客网 时间:2024/05/16 12:21
ll p[N],m[N];//扩展欧几里得算法void gcd(ll a,ll b,ll &d,ll &x,ll &y){    if(b==0)    {        d=a;        x=1,y=0;    }    else //else不能省略    {        gcd(b,a%b,d,y,x);        y-=(a/b)*x;    }}//中国剩余定理ll China(int n,ll p[],ll m[]){    ll M=1,d,y,x=0;    for(int i=0; i<n; i++) M*=p[i];    for(int i=0; i<n; i++)    {        ll w=M/p[i];        gcd(p[i],w,d,d,y);        x=(x+y*w*m[i])%M;    }    return (x+M)%M;}


原创粉丝点击