为什么不能直接对n进行二分?
部分求最小的n代码如下:
bool judge(long long m)
{
int p = K;
vis = 0;
for (int i = 1; i <= L; i++) {
vis += x[i];
if (vis >= m) {
vis = 0;
p--;
}
if (vis < 0)vis = 0;
}
if (p == 0)return true;
else return false;
}
long long mn(long long l, long long r)
{
long long mid, ans = 0x3f3f3f3f3f3f;
while (l <= r) {
mid = (l + r) / 2;
if (judge(mid)) {
r = mid - 1;
ans = min(ans, mid);
}
else l = mid + 1;
}
return ans;
}