WA最后一点求助
查看原帖
WA最后一点求助
227728
冰糖鸽子TJ鸽子协会楼主2020/7/28 16:40

RT,应该是比较易懂的二分思路

WA了最后一点,其他的AC

代码:

#include <iostream>
using namespace std;
int n,m,k,num[1000010],ans;
bool check(int a)
{
    int ans = 0;
    for(int i = 0;i < n;i++)
    {
        ans += (num[i] / a);
        if(ans >= k)
        {
            return 1;
        }
    }
    return 0;
}
int main()
{
    cin >> n >> k;
    for(int i = 0;i < n;i++)
    {
        cin >> num[i];
        m += num[i];
    }
    if(m < k)
    {
        cout << 0;
        return 0;
    }
    int l = 0,r = 100000001;
    while(l < r)
    {
        int mid = (l + r) / 2;
        if(check(mid))
        {
            ans = mid;
            l = mid + 1;
        }
        else
        {
            r = mid - 1;
        }
    }
    cout << ans;
    return 0;
}
2020/7/28 16:40
加载中...