第四个点re
查看原帖
第四个点re
332123
LHLeisus楼主2022/1/29 15:58
#include<iostream>
#include<cstring>
#include<vector>
#define N 10000005
using namespace std;
typedef long long ll;
ll n,k,ans;
ll a[N];
ll l=0,r=100000001;
ll check(ll mid) {
	ll cnt=0;
	for(ll i=1; i<=n; i++)
		cnt+=a[i]/mid;
	if(cnt>=k) return 1;
	else return 0;
}
signed main() {
	cin>>n>>k;
	for(ll i=1; i<=n; i++) cin>>a[i];
	while(l<=r) {
		ll mid=l+r>>1;
		if(check(mid)) {
			ans=mid;
			l=mid+1;
		} else r=mid-1;
	}
	cout<<ans;
	return 0;
}


这样子while(l<=r)就会re 但是改成while(l<r)就AC了,不是很理解,有dalao解释一下吗蒟蒻的疑惑

2022/1/29 15:58
加载中...