社区讨论
50分求调
P3853[TJOI2007] 路标设置参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @mhj2wa3y
- 此快照首次捕获于
- 2025/11/03 19:50 4 个月前
- 此快照最后确认于
- 2025/11/03 19:50 4 个月前
CPP
#include <bits/stdc++.h>
using namespace std;
#define maxn 100005
#define long long int
int a[maxn];
int M,N,K;
bool check(int num){
int x=0;
for (int i=1;i<N;i++){
int d=a[i]-a[i-1]-1;
if(d>x){
if(num==0) return false;
x+=d/num;
if(d%num==0)num--;
}
if(x>K) return false;
}
return x<=K;
}
signed main(){
cin >> M >> N >> K;
for(int i=0;i<N;i++) cin >> a[i];
sort(a,a+N);
int l=0,r=M;
while (l<r) {
int mid=(l+r)/2;
if (check(mid)) r=mid;
else l=mid+1;
}
cout << l;
return 0;
}
谢谢大佬!!!!!!!!!!!!!!!
回复
共 2 条回复,欢迎继续交流。
正在加载回复...