抽象做法
查看原帖
抽象做法
761125
Milthm楼主2024/7/11 18:42

rt,这个做法是对的吗?如果是对的,哪里有介绍这种做法的文章(?

#include<bits/stdc++.h>
#define int long long
#define N 100005
using namespace std;
int n,ans,x=1;
struct node{
	int a,b;
}a[N];
bool cmp(node a,node b){
	return a.a>b.a;
}
int gcd(int a,int b){
	if(a%b==0)return b;
	return gcd(b,a%b);
}
int lcm(int a,int b){
	return a/gcd(a,b)*b;
}
signed main(){
	cin>>n;
	for(int i=1;i<=n;++i)cin>>a[i].a>>a[i].b,a[i].b%=a[i].a;
	sort(a+1,a+n+1,cmp);
	ans=a[1].b;x=a[1].a;
	for(int i=2;i<=n;++i){
		while(ans%a[i].a!=a[i].b)ans+=x;
		x=lcm(x,a[i].a);
	}
	cout<<ans;
	return 0;
}
2024/7/11 18:42
加载中...