AcWing算法提高课 中国剩余定理 求解多个线性同余方程
注意这里是构造了一个解,ti由于Mi与mi互质,可以用ExGCD求解
例题:https://www.acwing.com/problem/content/1300/
模板:

#include<bits/stdc++.h> using namespace std; typedef long long LL; const int N=10; int m[N],a[N]; LL ExGCD(LL a,LL b,LL &x,LL &y) { if(b==0) { x=1,y=0; return a; } LL xx,yy; LL gcd=ExGCD(b,a%b,xx,yy); x=yy; y=xx-a/b*yy; return gcd; } LL Inv(LL num,LL MOD) { LL res,k; ExGCD(num,MOD,res,k); return res; } int main() { int n;cin>>n; long long M=1; for(int i=0;i<n;i++) { cin>>m[i]>>a[i]; M*=m[i]; } LL res=0; for(int i=0;i<n;i++) { res+=a[i]*M/m[i]*Inv(M/m[i],m[i]); } res=(res%M+M)%M; //要求最小正整数解,故结果对M取正余数 //因为M是全部a的最小公倍数,对于线性同余方城,取模后不影响结果 cout<<res<<endl; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人