其他分享
首页 > 其他分享> > P1495 【模板】中国剩余定理(CRT)/曹冲养猪

P1495 【模板】中国剩余定理(CRT)/曹冲养猪

作者:互联网

见数论中相关讲解。

#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,x=0;
const int maxn=15;
int a[maxn],b[maxn],m[maxn],t[maxn],M=1;
void exgcd(int a,int b,int &x,int &y){
	if(b==0){
		x=1,y=0;return ;
	}
	exgcd(b,a%b,y,x);y-=a/b*x;
}
int ny(int a,int mod){
	int x,y;
	exgcd(a,mod,x,y);
	return (x%mod+mod)%mod;
}
signed main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i]>>b[i];M*=a[i];
	}
	for(int i=1;i<=n;i++)m[i]=M/a[i],t[i]=ny(m[i],a[i]);
	for(int i=1;i<=n;i++)x+=(b[i]*m[i]%M*t[i]%M),x%=M;
	cout<<x;
	return 0;
}

标签:P1495,CRT,int,exgcd,maxn,long,return,曹冲,mod
来源: https://www.cnblogs.com/kkksc0100/p/china-left-theorem.html