听~说~灌~水~区~人~多(根号分治求助)
  • 板块灌水区
  • 楼主Zikl
  • 当前回复3
  • 已保存回复3
  • 发布时间2023/9/17 12:55
  • 上次更新2023/11/2 19:49:27
查看原帖
听~说~灌~水~区~人~多(根号分治求助)
300166
Zikl楼主2023/9/17 12:55

题目Two Arithmetic Progressions

我的代码

#include<cstdio>
#include<iostream> 
#include<cmath>
#include<algorithm>
#define ll long long
using namespace std;
ll a1,b1,a2,b2,l,r,i,k,ans;
int main(){
	cin>>a1>>b1>>a2>>b2>>l>>r;
	l=max(l,max(b1,b2));
	if(a1>a2)swap(a1,a2),swap(b1,b2);
	
	if(a2<1000){
		for(i=l;i<=min(l+a1*a2-1,r);i++)
		if((i-b1)%a1==0&&(i-b2)%a2==0)
		ans+=(r-i)/(a1*a2)+1;
	}
	else{
		for(int i=b2;i<=r;i+=a2){
			if(i>=l){
			if((i-b1)%a1==0) ans++;
			}
		}
	}
	cout<<ans<<endl;
	return 0;
}

我真的不知道哪里错了 救命

2023/9/17 12:55
加载中...