小杨要把一根长度为 L 的木头切成 K 段,使得每段长度小于等于 x。已知每切一刀只能把一段木头分成两段,他用二分法找到满足条件的最小 x(x 为正整数),则横线处应填写( )。

wr139996 单选题 共 个子题
// 判断:在不超过 K 次切割内,是否能让每段长度 <= x
bool check(int L, int K, int x) {
    int cuts = (L - 1) / x;
    return cuts <= K;
}

// 二分查找最小可行的 x
int binary_cut(int L, int K) {
    int l = 1, r = L;
    while (l < r) {
        int mid = l + (r - l) / 2;
        ________________________________ // 在此处填入代码
    }
    return l;
}

int main() {
    int L = 10; // 木头长度
    int K = 2; // 最多切 K 刀

    cout << binary_cut(L, K) << endl;
    return 0;
}
A
if (check(L, K, mid))
r = mid;
else
l = mid + 1;
B
if (check(L, K, mid))
r = mid+1;
else
l = mid + 1;
C
if (check(L, K, mid))
r = mid + 1;
else
l = mid - 1;
D
if (check(L, K, mid))
r = mid + 1;
else
l = mid;
正在加载题目数据…
已答 /
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析
讨论
发布
登录后参与讨论 立即登录
发布讨论需先绑定并验证手机号 去绑定手机号
加载中…
我
我
回复 @
回复 @
发送
还没有人讨论,来发表第一条吧