社区讨论
不是,这代码也能超时???
灌水区参与者 8已保存回复 46
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 46 条
- 当前快照
- 1 份
- 快照标识符
- @m23c28w0
- 此快照首次捕获于
- 2024/10/10 21:27 去年
- 此快照最后确认于
- 2025/11/05 01:43 4 个月前
原题||记录
nm的nlogn的时复都能超,数据才10万啊喂!!!而且这是二分啊!
这是代码,求大佬解答%%%
CPP#include<bits/stdc++.h>
using namespace std;
int n,c,d[100001];
bool check(int x){
int tot=0,prec=1;
for(int i=1;i<=n;i++)
if(d[i]-d[prec]>=x) tot++;
return tot>=c;
}
int main(){
cin>>n>>c;
for(int i=1;i<=n;i++) cin>>d[i];
sort(d+1,d+n+1);
int l=1,r=n;
while(l<r){
int mid=(l+r)>>1;
if(check(mid)) l=mid;
else r=mid-1;
}cout<<l;
return 0;
}
回复
共 46 条回复,欢迎继续交流。
正在加载回复...