题解 | 华华给月月准备礼物

华华给月月准备礼物

https://www.nowcoder.com/practice/9963334321e64e61a397b262708e4f65

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 3e5+10;
int len[N];
int n,k;
bool check(int x)
{
    ll cnt = 0;
    for(int i=1;i<=n;i++)
    {   
        cnt += len[i]/x;
    }
    return cnt>=k;
}

int main()
{
    cin>>n>>k;
    int mx = 0;
    for(int i=1;i<=n;i++)
    {
        cin>>len[i];
        mx = max(mx,len[i]);
    }   
    int ans = 0;

    int l=1,r=mx;
    while(l<=r)
    {
        int mid = (l+r)>>1;
        if(check(mid))
        {
            ans = mid;
            l = mid+1;
        }
        else r = mid-1;
    }
    cout<<ans<<'\n';
}

经典二分题

全部评论

相关推荐

Cl_Wg:看牛客匿名贴容易抑郁,白菜就是我的天花板
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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