华华给月月准备礼物 来源 牛客小白月赛12

华华给月月准备礼物

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

题解:
我们要的是找最大的长度,使得所有木棍能截成最少根长度为的木棍。
根木棍最多显然能截成长度为的木棍,为第根木棍的原始长度。
因为若,所以能截成的数量是随着木棍长度单调递增而递减的,所以可以采用二分,二分木棍的长度,然后求满足最少根的最大值

#include<bits/stdc++.h>
using namespace std;
int a[200005];
int main()
{
    int n,m;
    scanf("%d%d",&n,&m);
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&a[i]);
    }
    int l=1,r=1e9;
    int ans=0;
    while(l<=r)
    {
        int mid=l+r>>1;
        long long  k=0;
        for(int i=1;i<=n;i++)
        {
            k+=a[i]/mid;
        }
        if(k>=m)
        {
            ans=mid;
            l=mid+1;
        }
        else {
            r=mid-1;
        }
    }
    printf("%d\n",ans);
}
全部评论

相关推荐

10-09 00:50
已编辑
长江大学 算法工程师
不期而遇的夏天:1.同学你面试评价不错,概率很大,请耐心等待;2.你的排名比较靠前,不要担心,耐心等待;3.问题不大,正在审批,不要着急签其他公司,等等我们!4.预计9月中下旬,安心过节;5.下周会有结果,请耐心等待下;6.可能国庆节前后,一有结果我马上通知你;7.预计10月中旬,再坚持一下;8.正在走流程,就这两天了;9.同学,结果我也不知道,你如果查到了也告诉我一声;10.同学你出线不明朗,建议签其他公司保底!11.同学你找了哪些公司,我也在找工作。
点赞 评论 收藏
分享
10-30 22:18
已编辑
毛坦厂中学 C++
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-21 17:16
科大讯飞 算法工程师 28.0k*14.0, 百分之三十是绩效,惯例只发0.9
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务