题解
2025-04-09 16:48:45
发布于:浙江
5阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int n,m,mid,l,r,ma,a[1000005];
bool judge(int x)
{
long long s=0,k=1;
for(int i=1;i<=n;i++)
if(s+a[i]<=x) s+=a[i];
else s=a[i],k++;
return k<=m;
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++) cin>>a[i],ma=max(ma,a[i]);
l=ma;r=1e9;
mid=l+r>>1;
while(l<r)
{
if(judge(mid)) r=mid;
else l=mid+1;
mid=l+r>>1;
}
cout<<l;
return 0;
}
这里空空如也
有帮助,赞一个