bool check(int mid){
ll cnt=0,k=0;
for(int i=0;i<n;i++){
if(a[i]>mid){
return false;
}
if((ll)k+a[i]>mid){
cnt++;
k=0;
}
k+=a[i];
}
return (cnt<=m);
}
1 个赞
long long c = 1, t = 0;
for (int i = 1; i <= n; i++) {
if (t + a[i] <= x) {
t += a[i];
} else {
if (a[i] > x) {
return 0;
}
if (c >= m) {
return 0;
}
c++;
t = a[i];
}
}
return 1;
这是我的check,可以参考一下
1 个赞
如果对你有帮助,请给个解决方案
1 个赞