社区讨论

100分UnAC求救

P1495【模板】中国剩余定理(CRT)/ 曹冲养猪参与者 5已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@lzoyp8bt
此快照首次捕获于
2024/08/11 10:45
2 年前
此快照最后确认于
2024/08/11 11:49
2 年前
查看原帖
CPP
#include<iostream>
using namespace std;
long long n,a[20],b[20],x,y;
long long exgcd(long long a,long long b){
	if(b==0){
		x=1;y=0;
		return a;
	}
	long long d=exgcd(b,a%b);
	long long t=x;x=y;
	y=t-a/b*y;
	return d;
}long long crt(){
	long long s=1,ans=0;
	for(int c=1;c<=n;c++)s*=a[c];
	for(int c=1;c<=n;c++){
		long long m=s/a[c];
		x=y=0;
		exgcd(m,a[c]);
		long long m1=(x%a[c]+a[c])%a[c];
		ans+=m%s*m1%s*b[c]%s;
		ans%=s;
	}return (ans%s+s)%s;
}int main(){
	cin>>n;
	for(int c=1;c<=n;c++)cin>>a[c]>>b[c];
	cout<<crt();
}
#subtack1一直WA

回复

5 条回复,欢迎继续交流。

正在加载回复...