二分写不清楚求调:(
查看原帖
二分写不清楚求调:(
1457416
Bloom_28楼主2025/1/4 17:02
#include<bits/stdc++.h>
using namespace std;
int n, k, L, ans;
int a[100010];
bool P(int r){
	int cnt = 0;
	for(int i=1;i<n;i++){
		while(a[i]-a[i-1] > r){
			cnt++;
			a[i-1] += r;
		}
	}
	return cnt >= k;
}
int main(){
	cin >> L >> n >> k;
	for(int i=0;i<n;i++) cin>>a[i];
    //输入

	int  l = 1, r = L, mid;
	while(l<=r){
		mid=l + (r - l) / 2;
		if(P(mid)){
			ans = mid;
			l = mid + 1;
		}
		else{
			r = mid - 1;
		}							
	}

	cout << ans;
	return 0;
}
2025/1/4 17:02
加载中...