博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
拓展中国剩余定理(不互质的情况)
阅读量:5145 次
发布时间:2019-06-13

本文共 578 字,大约阅读时间需要 1 分钟。

每次合并两个同余模方程,然后用exgcd解即可。

ll LCM(ll a,ll b){    return a/__gcd(a,b)*b;}void exgcd(ll a,ll b,ll &d,ll &x,ll &y){    if(b==0){        x=1;y=0;d=a;        return;    }    exgcd(b,a%b,d,y,x);    y-=x*(a/b);}ll MLE(ll a,ll b,ll n){    ll x,y,d;    exgcd(a,n,d,x,y);    if(b%d) return -1;    x*=(b/d);    return (x%n+n)%n;}ll ex_china(ll *a,ll *m,int n){    ll x,y,d;    ll M=1,A=0;    REP(i,1,n){        ll k=MLE(m[i],A-a[i],M);        if(k==-1) return -1;        A=k*m[i]+a[i];        M=LCM(M,m[i]);    }    return (A+M)%M;}
View Code

 

转载于:https://www.cnblogs.com/--560/p/5403973.html

你可能感兴趣的文章
一些php文件函数
查看>>
std::min error C2059: 语法错误:“::” 的解决方法
查看>>
Opencv保存摄像头视频&&各种编码器下视频文件占用空间对比
查看>>
「图形学」直线扫描——Bresenham算法改进了中点Bresenham算法?
查看>>
jQuery 给div绑定单击事件
查看>>
Exceptionless 生产部署笔记
查看>>
有关快速幂取模
查看>>
转 ObjExporter Unity3d导出场景地图寻路
查看>>
Linux运维必备工具
查看>>
Ubuntu配置ssh及vnc
查看>>
Kinect学习(3)Kinect for Windows SDK资料下载
查看>>
Java入门——第七天
查看>>
HTML5 Audio时代的MIDI音乐文件播放
查看>>
明确工作职责的重要性
查看>>
ajax方法总结
查看>>
Spring注解使用和与配置文件的关系
查看>>
C语言进阶——const 和 volatile 分析09
查看>>
字符串的查找删除
查看>>
跨域请求
查看>>
NOI2018垫底记
查看>>