求大佬帮一下
  • 板块灌水区
  • 楼主cry_penguin
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/9/15 21:44
  • 上次更新2023/11/2 20:34:29
查看原帖
求大佬帮一下
444919
cry_penguin楼主2023/9/15 21:44

P1495 这道题正解使用扩欧做的,但是我觉得暴力是可以的,然后90分了。。。我想知道用暴力能不能拿满分

我的思路就是枚举一个i让s=a[1]*i+b[1]

且s满足s%a[i]==b[i] (i>1)

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n,s;
bool f;
struct sb{
	ll a,b;
}p[114514];
bool cmp(sb x,sb y){
	return x.a>y.a;
}
int main(){
    scanf("%lld",&n);
    for(int i=1,x,y;i<=n;i++){
    	cin>>x>>y;
    	p[i].a=x;p[i].b=y;
	}
	if(n==1) return cout<<p[1].b%p[1].a,0;
	sort(p+1,p+1+n,cmp);
	ll i=0;
	while(1){
		if(f) i++;
		while((p[1].a*i+p[1].b)%p[2].a==p[2].b) i++;
		f=0;
		s=p[1].a*i+p[1].b;
		for(int j=3;j<=n;j++){
			if(s%p[j].a!=p[j].b){
				f=1;break;
			}  
		}
		if(!f) return cout<<s,0;
	}
    return 0;
}

麻烦大佬们了

2023/9/15 21:44
加载中...