给定 n 根木头,第 i 根长度为 a[i]。要切成不少于 m 段等长木段,求最大可能长度,则横线上应填写( )。

ws989429 单选题 共 个子题
const int MAXN = 100005;
long long a[MAXN];
int n, m;

bool check(long long x){
    long long cnt = 0;
    for(int i = 1; i <= n; i++){
        if(x == 0) return true;
        cnt += a[i] / x;
        if(cnt >= m) return true;
    }
    return false;
}

int main(){
    cin >> n >> m;
    long long mx = 0;
    for(int i = 1; i <= n; i++){
        cin >> a[i];
        mx = max(mx, a[i]);
    }

    long long l = 1, r = mx;
    long long ans = 0;

    while(l <= r){
        long long mid = l + (r - l) / 2;

        if(check(mid)){
            ans = mid;
            ______________________
        }else{
            ______________________
        }
    }

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