cnt为什么初始化为1
查看原帖
cnt为什么初始化为1
1419017
z1443888087楼主2024/11/12 16:42
#include<iostream>
#define ll long long
using namespace std;
ll a[1000005];
ll n,m;
ll l,r;
bool check(int x){
	ll ans=0,cnt=1;
	for(int i=1;i<=n;i++){
		if(a[i]+ans>x){
			cnt++;
			ans=0;
		}
		ans+=a[i];
	} 
	if(cnt>m)return false;
	else return true;
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		l=max(l,a[i]);
		r+=a[i];
	}
	ll ans=0;
	while(l<=r){
		int mid=l+(r-l)/2;
		if(check(mid)){
			ans=mid;
			r=mid-1;
		}
		else {
			l=mid+1;
		}
	}
	cout<<ans;
}
2024/11/12 16:42
加载中...