社区讨论

学术版参与者 4已保存回复 6

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
6 条
当前快照
1 份
快照标识符
@mk6y6nuh
此快照首次捕获于
2026/01/09 22:04
上个月
此快照最后确认于
2026/01/11 21:05
上个月
查看原帖
本人在做CF484B时提交了我的代码如下
CPP
#include<bits/stdc++.h>
using namespace std;
const int bit=1000;
int n,a[200005],b[bit];
bool cmp(int l,int r){
	return l>r;
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	sort(a+1,a+1+n);
	n=unique(a+1,a+1+n)-a-1;
	for(int i=1,j=n;i<j;i++,j--){
		swap(a[i],a[j]);
	}
	int ans=0;
	for(int i=1;i<=n;i++){
		if(a[i]<=bit){
			ans=max(ans,b[a[i]]);
		}
		else{
			int kl=0;
			while(kl<=a[1]){
				kl+=a[i];
				int ll=1,rr=i-1,anss=0;
				while(ll<=rr){
					int mid=(ll+rr)/2;
					if(a[mid]<kl){
						rr=mid-1;
						anss=mid;
					}
					else{
						ll=mid+1;
					}
				}
				ans=max(ans,a[anss]%a[i]);
			}
		}
		for(int j=1;j<=min(bit,a[i]);j++){
			b[j]=max(b[j],a[i]%j);
		}
	}
	cout<<ans<<'\n';
	return 0;
} 
然后返回了Time limit exceeded on test 4 然后test 4的数据是
CPP
1
1000000
可是本地没有超时,是怎么回事

回复

6 条回复,欢迎继续交流。

正在加载回复...