有若干根木头,长度存于 wood 。每切一刀把一段分成两段,函数 check(wood, K, x) 返回「用不超过 K 刀能否使所有木段长度都不超过 x」。下面代码用二分答案查找最小可行的 x ,横线处应填( )。
int binary_cut(vector<int>& wood, int K) {
int l = 1, r = 0;
for (int len : wood) r = max(r, len);
while (l < r) {
int mid = l + (r - l) / 2;
if (check(wood, K, mid))
______________; // 在此处填入代码
else l = mid + 1;
}
return l;
}
- A. r = mid + 1
- B. r = mid
- C. l = mid
- D. r = mid - 1
正确答案:B