社区讨论
wa#2#10,求助,感谢
P3853[TJOI2007] 路标设置参与者 3已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @m2u9sia1
- 此快照首次捕获于
- 2024/10/29 17:53 去年
- 此快照最后确认于
- 2025/11/04 15:44 4 个月前
CPP
#include <bits/stdc++.h>
using namespace std;
int a[10000005], cha[10000005];
int ll,n,k,maxh;
bool judge(int x) {
int num = k;
for(int i = 1; i <= n+1; i++) {
if(num < 0) return 0;
if(cha[i] <= x) continue;
int coun = cha[i]/x;
if(cha[i] % x == 0) num -= coun+1;
else num -= coun;
//num -= coun;
}
return 1;
}
int main() {
scanf("%d%d%d", &ll, &n, &k);
for(int i = 1; i <= n; i++) {
scanf("%d", &a[i]);
if(i == 1) cha[i] = a[i];
else cha[i] = a[i]-a[i-1];
if(cha[i] > maxh) maxh = cha[i];
}
cha[n+1] = ll-a[n];
int l = 1, r = maxh, mid = (l+r)/2;
while(l < r) {
bool flag = judge(mid);
if(flag) {
r = mid;mid = (l+r)/2;
}
else {
l = mid+1; mid = (l+r)/2;
}
}
printf("%d", l);
return 0;
}
回复
共 4 条回复,欢迎继续交流。
正在加载回复...