二分为什么边界不能这样设?
查看原帖
二分为什么边界不能这样设?
552776
this_is_hhh楼主2021/12/19 20:21
#include<iostream>
using namespace std;
int main(){
	int n,k;
	cin>>n>>k;
	int l[100000005];
	for(int i=0;i<n;i++){
		cin>>l[i];
	}
	int left=0,right=1000000;
	while(left<=right){
		int sum=0;
	
		int middle=left+(right-left)/2;
		for(int i=0;i<n;i++){
			sum+=l[i]/middle;
		}
		if(sum<k-1){
			right=middle-1;
		}else{
			left=middle+1;

		}
	}
	cout<<ans;
	return 0;
}
2021/12/19 20:21
加载中...