每日一题4月17日 华华给月月准备礼物 二分答案

华华给月月准备礼物

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

这题算是水题。。

题目大意:
给N根长度不一样的木棍,现在可以对木棍进行剪裁,问经过剪裁以后能否得到K根长度一样的木棍。多出来的可以不用。问最长可以剪裁成多少长度相同的K根木棍。
N<=200000

思路:
二分长度。
然后每次判断当前二分的长度能不能组成K根木棍。

代码:

#include<bits/stdc++.h>
using namespace std;
int n,k,a[200040];
long long sum;
bool check(long long x){
    int t=0;
    for(int i=1;i<=n;i++){
        t+=a[i]/x;
        if(t>=k)return true;
    }
    return false;

}
int main()
{
    cin>>n>>k;
    for(int i=1;i<=n;i++)cin>>a[i],sum+=a[i];
    long long l=0,r=sum/k;
    while(l<r){
        long long mid=l+r+1>>1;
        if(!check(mid))r=mid-1;
        else l=mid;
    }
    cout<<r<<endl;
    return 0;
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-01 11:47
点赞 评论 收藏
分享
05-21 15:47
门头沟学院 Java
浪漫主义的虹夏:项目有亮点吗,第一个不是纯玩具项目吗,项目亮点里类似ThreadLocal,Redis储存说难听点是花几十分钟绝大部分人都能学会,第二个轮子项目也没体现出设计和技术,想实习先沉淀,好高骛远的自嗨只会害了自己
点赞 评论 收藏
分享
牛客刘北:如果暑期实习是27届的话,你要晚一年才会毕业,企业为什么会等你呢?要搞清时间逻辑呀!27届现在实习只能是在暑假实习,这是日常实习,不是暑期实习。所以多去投日常实习吧,暑期实习肯定不会要你的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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