Stressful Training

Stressful Training

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

#include <bits/stdc++.h>
using namespace std;
const int maxn=5e5+10;
#define int long long
double a[maxn],b[maxn];
int n,k;
struct p{
    double a,b; double c;
    bool operator < (const p &tmp )    const{
        return c>tmp.c;
    }
};
bool isok(int mid)
{
    priority_queue<p>q;
    for(int i=1;i<=n;i++)
        if( a[i]/b[i]<k )    q.push( (p){a[i],b[i],a[i]/b[i]} );
    if( q.empty() )    return 1;
    for(int i=0;i<k;i++)
    {
        p now=q.top(); q.pop();
        if( now.c<i )    return 0;
        if( (now.a+mid)/now.b<k )
        {
            now.a+=mid,now.c=now.a/now.b;
            q.push(now);
        }
        if( q.empty() )    return 1;
    }
    return 1;
}
signed main()
{
    ios::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);
    cin >> n >> k;
    for(int i=1;i<=n;i++)    cin >> a[i];
    for(int i=1;i<=n;i++)    cin >> b[i];
    int l=0,r=2e12,mid,ans=-1;
    while( r>=l )
    {
        mid =l+r>>1;
        if( isok(mid) )    ans=mid,r=mid-1;
        else    l=mid+1;
    }
    cout << ans;
}
全部评论

相关推荐

11-01 08:48
门头沟学院 C++
伤心的候选人在吵架:佬你不要的,能不能拿户口本证明过户给我。。球球了
点赞 评论 收藏
分享
10-30 10:16
南京大学 Java
永远的鹅孝子:给南大✌️跪了
点赞 评论 收藏
分享
11-27 17:08
已编辑
牛客_产品运营部_私域运营
腾讯 普通offer 24k~26k * 15,年包在36w~39w左右。
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务