中国剩余定理(CRT)
中国剩余定理 (即 Chinese Remainder Theorem,简称 CRT) 可求解如下形式的一元线性同余方程组(其中 ):
解法如下:记 ,则一个答案为 ,最小正整数解即 。
证明显然:对于 ,所有 都满足 为 的倍数,故 ;对于 本身满足 ,故 。所以有 。
P1495 模板代码
#include<iostream>
#include<cstdio>
#define ll long long
#define maxn 15
using namespace std;
int n,a[maxn],b[maxn]; ll prod=1LL,ans=0,x,y;
void exgcd(ll aa,ll bb,ll &x,ll &y){if(bb==0){x=1LL; y=0LL; return;} exgcd(bb,aa%bb,x,y); ll tmp=x; x=y; y=tmp-(aa/bb)*y;}
int main(){
scanf("%d",&n); for(int i=1;i<=n;i++){scanf("%d%d",&a[i],&b[i]); prod*=1LL*a[i];}
for(int i=1;i<=n;i++){ll res=prod/a[i]; exgcd(res,a[i],x,y); x=(x%a[i]+a[i])%a[i]; ans+=b[i]*res*x;}
printf("%lld",ans%prod);
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!