爆蛋求助
查看原帖
爆蛋求助
190931
cannotdp楼主2023/2/18 16:39
#include <bits/stdc++.h>
#define ll long long
using namespace std;
int n;
const int N=1e5+10;
ll a,b,lasta,lastb;
ll exgcd(ll a,ll b,ll &x,ll &y){
	if(!b){
		x=1,y=0;
		return a;
	}
	ll d=exgcd(b,a%b,x,y);
	int z=x;x=y;y=z-y*(a/b);
	return d;
}
ll lcm(ll x,ll y,ll d){
	return (ll)(x*y)/d;
}
signed main(){
	scanf("%d",&n);
	scanf("%lld%lld",&lasta,&lastb);
	for(int i=2;i<=n;i++){
		scanf("%lld%lld",&a,&b); 
		ll x,y;
		ll d=exgcd(lasta,a,x,y);
		x*=(b-lastb)/d,y*=(b-lastb)/d;
		lastb=lasta*x+lastb,lasta=lcm(lasta,a,d);
	}
	printf("%lld",lastb%lasta);
	return 0;
}

菜鸡刚学 excrt,式子是跟着 oi-wiki 推的

2023/2/18 16:39
加载中...