TLE ?
查看原帖
TLE ?
572133
潘德理2010楼主2023/10/4 11:19

时间复杂度 O(q(a+b))O(q(a+b)) ,后三个点 TLE 。

有人知道为什么吗:

#include<bits/stdc++.h>
using namespace std;
int a,b,t,l,r,ans;
int main(){
	scanf("%d%d%d",&a,&b,&t);
	while(t--){
		ans=0;
		scanf("%d%d",&l,&r);
		r=min(r,l+a*b-1);
		for(int i=l;i<=r;){
			ans=max(ans,(i%a)+(i%b));
			if((i+1)%a==0) i+=a;
			else i++;
		}
		for(int i=l;i<=r;){
			ans=max(ans,(i%a)+(i%b));
			if((i+1)%b==0) i+=b;
			else i++;
		}
		ans=max(ans,(r%a)+(r%b));
		printf("%d\n",ans);
	}
	return 0;
}

评测记录

2023/10/4 11:19
加载中...