【每日一题0417】二分答案模板题

https://ac.nowcoder.com/acm/problem/23049

典型的二分答案模板题
二分一个长度,检查答案是否大于等于K即可,若可以增大长度,不可以缩小长度

#include<bits/stdc++.h>
using namespace std;
#define N 200010
int num[N];int k;int n;
int check(int len){
    int cnt=0;
    for(int i=1;i<=n;++i){
        cnt+=num[i]/len;
    }
    return cnt>=k;
}
int main(){
    cin>>n>>k;
    int mx=0;
    for(int i=1;i<=n;++i){
        cin>>num[i];
    }
    int le=1;
    int ri=1e9;
    int ans=0;
    while(ri>=le){
        int mid=le+(ri-le)/2;
        if(check(mid)){
            ans=mid;
            le=mid+1;
        }else {
            ri=mid-1;
        }
    }
    cout<<ans<<endl;
    return 0;
}
全部评论

相关推荐

哈哈哈哈哈哈哈哈哈哈这个世界太美好了
凉风落木楚山秋:毕业出路老师不管,你盖个章他好交差就完事了,等你盖完毕业了就不关他事情了
点赞 评论 收藏
分享
06-25 09:33
厦门大学 Java
程序员饺子:现在日常估计没啥hc了,等到八月多估计就慢慢有了。双九✌🏻不用焦虑的
投递快手等公司7个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务