按公式推的代码60pts求调
查看原帖
按公式推的代码60pts求调
768238
_WhiteDeer_楼主2024/10/29 23:18
#include<bits/stdc++.h>
#define int unsigned long long
using namespace std;
int n[15],m[15],x=0,a[15],N=1;
int T,k[15],mod;
inline int ksm(int u,int v){
	if(!v) return 1;
	int num=ksm(u,v>>1);
	num=num*num%mod;
	if(v&1) num=num*u%mod;
	return num;
}
signed main(){
	cin >> T;
	for(int i=1;i<=T;i++){
		cin >> n[i] >> a[i];
		N*=n[i];
	}
	for(int i=1;i<=T;i++){
		m[i]=(N/n[i])%N;
	}
	//求逆元
	for(int i=1;i<=T;i++){
		mod=n[i];
		k[i]=ksm(m[i],mod-2);
	}
	for(int i=1;i<=T;i++){
		x=(x+(a[i]*m[i]*k[i])%N)%N;
	}
	if(T==1) cout << a[1];
	else cout << x;
	return 0;
}

代码如上,求大佬调orz.

2024/10/29 23:18
加载中...