Mafia

C. Mafia

参考:Editorial for Codeforces Round #202

假设最终答案为\(x\),则\((x-a[i])\)表示的是第\(i\)个人可以充当监护者的局数,而\(\sum^n_{i=1}{(x-a_i)}\)表示得则是在进行\(x\)局游戏保证每一个人完过瘾的情况下,可以用有监护者的局数。只有当\(\sum^n_{i=1}{(x-a_i)}>=x\)的情况下才是符合条件的。

如果不理解上面那个公式的话,可以把监护者理解为排班,在\(x\)个上班时间中,第\(i\)个人的上班时间为\(m\),如果\(m<=(x-a_i)\),那么这个人就会很开心,那么对于所有的人都是这样的,累计即可得到上述公式。

如果正着感觉没有思路的话,考虑一下反着来。

代码:

// Created by CAD on 2020/1/13.
#include <bits/stdc++.h>
#define INF 0x7fffffffffffffff
#define ll long long
using namespace std;

const int maxn=1e5+5;
int a[maxn],n;
bool judge(ll mid)
{
    ll sum=0;
    for(int i=1;i<=n;++i)
        sum+=(mid-a[i]);
    return mid<=sum;
}
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    cin>>n;
    ll sum=0,l=0;
    for(int i=1;i<=n;++i)
        cin>>a[i],sum+=a[i],l=max(l,1ll*a[i]);
    ll r=sum,ans=INF;
    while(l<=r)
    {
        ll mid=(l+r)>>1;
        if(judge(mid)) ans=min(ans,mid),r=mid-1;
        else l=mid+1;
    }
    cout<<ans<<endl;
    return 0;
}
全部评论

相关推荐

03-08 18:11
门头沟学院 Java
Java抽象小篮子:海投就完事了,简历没什么问题,最大问题是学历
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# 春招至今,你的战绩如何? #
7721次浏览 68人参与
# 你的实习产出是真实的还是包装的? #
1462次浏览 37人参与
# 巨人网络春招 #
11260次浏览 223人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
7233次浏览 39人参与
# 简历第一个项目做什么 #
31408次浏览 317人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
186666次浏览 1117人参与
# 米连集团26产品管培生项目 #
5208次浏览 211人参与
# 研究所笔面经互助 #
118818次浏览 577人参与
# 重来一次,我还会选择这个专业吗 #
433177次浏览 3924人参与
# 简历中的项目经历要怎么写? #
309773次浏览 4173人参与
# 面试紧张时你会有什么表现? #
30438次浏览 188人参与
# AI时代,哪些岗位最容易被淘汰 #
63039次浏览 768人参与
# 正在春招的你,也参与了去年秋招吗? #
362952次浏览 2635人参与
# 你怎么看待AI面试 #
179607次浏览 1200人参与
# 职能管理面试记录 #
10764次浏览 59人参与
# 网易游戏笔试 #
6414次浏览 83人参与
# 腾讯音乐求职进展汇总 #
160498次浏览 1107人参与
# 校招笔试 #
468811次浏览 2960人参与
# 把自己当AI,现在最消耗你token的问题是什么? #
7101次浏览 156人参与
# 你觉得通信/硬件有必要实习吗? #
155416次浏览 1065人参与
# 小红书求职进展汇总 #
226988次浏览 1357人参与
# 从哪些方向判断这个offer值不值得去? #
56718次浏览 357人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务