60分求调
查看原帖
60分求调
839893
Luka__Modric楼主2024/4/21 19:21
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,a[15],b[15],ans,qwq=1;
pair<int,int> exgcd(int a,int b){
    if(b==0)
        return {1,1};
    pair<int,int> tmp=exgcd(b,a%b);
    int x=tmp.second,y=(1-a*tmp.second)/b;
    return {x,y};
}
int inv(int q,int x){
    pair<int,int> tmp=exgcd(a[x],q);
    return (tmp.second+qwq)%qwq;
}
signed main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i]>>b[i];
		qwq*=a[i];
	}
	for(int i=1;i<=n;i++)
		ans+=(qwq/a[i])*b[i]*inv(qwq/a[i],i),ans%=qwq;
	cout<<ans%qwq;
	return 0;
}

/*
q*i=1(mod qwq)
q*i=1+qwq*a
q*i-qwq*a=1




*/
2024/4/21 19:21
加载中...