社区讨论
问
学术版参与者 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的数据是
CPP1
1000000
可是本地没有超时,是怎么回事
回复
共 6 条回复,欢迎继续交流。
正在加载回复...