呜呜呜,,,这样写二分这么错了,题目案例过了
查看原帖
呜呜呜,,,这样写二分这么错了,题目案例过了
552776
this_is_hhh楼主2021/12/19 23:06
#include<iostream>
using namespace std;
int main(){
	int L,N,K;
	cin>>L>>N>>K;
	int a[1005]={0};
	for(int i=0;i<N;i++){
		cin>>a[i];
	}
	int left=0,right=99999999;
	while(left<right-1){
		int middle=left+(right-left)/2;
		for(int i=0;i<N-1;i++){
			int sum=0;
			if(a[0]>middle){
				sum+=(a[i+1]-a[i])/middle;
			}
			if(a[i+1]-a[i]>middle){
				sum+=(a[i+1]-a[i])/middle;
			}
			if(sum<K+1){
				right=middle;
			}else{
				left=middle;
			}
		}
	}
		cout<<left+1;
		return 0;
}
2021/12/19 23:06
加载中...