二分求助
查看原帖
二分求助
1281213
hkjkjk楼主2024/9/7 11:47

二分30分

#include<iostream>
#include<cmath>
using namespace std;
int l,n,k;
int a[100005];
bool check(int x){
	int cnt=0;
	for(int i=1;i<=n;i++){
		cnt+=ceil(1.0*(a[i]-a[i-1])/x)-1;
	}
	return cnt<=k;
}
int binary_search(int l,int r){
	while(l<=r){
		int mid=(l+r)/2;
		if(check(mid)){
			r=mid-1;
		}
		else{
			l=mid+1;
		}
	}
	return l;
}
int main(){
	cin>>l>>n>>k;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	int ans=binary_search(1,l);
	cout<<ans;
	return 0;
}
2024/9/7 11:47
加载中...