社区讨论

不是,这代码也能超时???

灌水区参与者 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 条回复,欢迎继续交流。

正在加载回复...