测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A22005. ⼩杨要把⼀根长度为 L 的⽊头切成 K 段,使得每段长度⼩于等于 x 。已知每切⼀⼑只能把⼀段⽊头分成两段,他⽤⼆分法找到满⾜条件的最⼩ x ( x 为正整数),则横线处应填写( )。// 判断: 在不超过 K 次切割内, 是否能让每段长度 <= x bool check(int L, int K, int x) { int cuts = (L - 1) / x; return cuts <= …

单选题 困难

题目描述

⼩杨要把⼀根长度为 L 的⽊头切成 K 段,使得每段长度⼩于等于 x 。已知每切⼀⼑只能把⼀段⽊头分成两段,他⽤⼆分法找到满⾜条件的最⼩ x ( x 为正整数),则横线处应填写(    )。

// 判断: 在不超过 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;
}

选项(单选)

上一题 下一题