链接:ECJTU 2018 Summer Training 1 - Virtual Judge  https://vjudge.net/contest/236677#problem/G

谷歌翻译:

距离特工Mahone离开安曼还有K小时!哈姆穆里不喜欢任务中的事情,他不想再次失败。有些地方的学生太多,而其他地方只有很少的学生。

每当Hammouri命令学生改变他的位置时,学生只需要一个小时就能到达新的地方。 Hammouri等到他确定学生在发出新命令之前已到达新地方。因此,每小时只有一名学生可以改变他的位置。

Hammouri希望命令学生改变他们的位置,以便在K小时后,覆盖同一地方的学生的最大数量被最小化。

考虑到覆盖每个地方的学生人数,您的任务是找到K小时后覆盖同一地点的最大学生人数,假设Hammouri正确地最小化了这个数字。

输入
第一行输入包含两个整数M(2≤M≤105)和K(1≤K≤109),其中M是位数,K是代理Mahone离开安曼之前剩余的小时数。

第二行包含M个非负整数,每个整数代表覆盖其中一个地方的学生人数。每个地方最多有109名学生。

产量
假设Hammouri在最近K小时内尽可能地减少了这个数字,打印在K小时后覆盖一个地方的学生的最大数量。

应该看得懂吧。

我们要算在小于等于k次操作后所有地方学生的最大值。

个人思路:我们把所有的值的和sum算出,可以知道,如果sum%M==0,那么学生数ave最小为sum/M,否则最小为sum/M+1;

然后用二分,最小为l=ave,最大就是r=max(M1,...Mi),不断二分查找符合条件的值,同时不断更新就可以了。

时间复杂度为nlogn吧

#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
#define ll long long
#define inf 1000000009
ll a[];
ll n,m,ans,ave;
int jug(ll k)//判断是否可行
{
ll count=;
for(int i=;i<n;i++)
{
if(a[i]>k)
count+=a[i]-k;
}
if(count>m)
return ;
return ;
}
void binary(ll l,ll r)
{
ll mid=(l+r)/;
while(l<=r)
{
if(jug(mid))
{
ans=min(ans,mid);
r=mid-;
}
else
l=mid+;
mid=(l+r)/;
}
}
int main()
{
while(cin>>n>>m)
{
ll sum=;
ans=inf;
ll max=;
for(int i=;i<n;i++)
{
cin>>a[i];
sum+=a[i];
if(a[i]>max)
max=a[i];
}
if(sum%n==)//找最小值
ave=sum/n;
else
ave=sum/n+;
binary(ave,max);
cout<<ans<<endl;
}
return ;
}

Gym - 100989G 二分的更多相关文章

  1. E.Text Editor (Gym 101466E + 二分 + kmp)

    题目链接:http://codeforces.com/gym/101466/problem/E 题目: 题意: 给你s串和t串,一个数k,求t的最长前缀串在s串中出现次数不少于k. 思路: 一眼二分+ ...

  2. Gym - 100989G (二分法)

    There are K hours left before Agent Mahone leaves Amman! Hammouri doesn't like how things are going ...

  3. Gym - 101908G 二分答案+最大流

    After the end of the truck drivers' strike, you and the rest of Nlogônia logistics specialists now h ...

  4. Hacker Cups and Balls Gym - 101234A 二分+线段树

    题目:题目链接 题意:有编号从1到n的n个球和n个杯子. 每一个杯子里有一个球, 进行m次排序操作,每次操作给出l,r. 如果l<r,将[l,r]范围内的球按升序排序, 否则降序排, 问中间位置 ...

  5. Gym 102007I 二分 网络流

    题意:给你一张图,每个城市有一些人,有不超过10个城市有避难所,避难所有容量上限,问最快多久可以让所有人进入避难所? 思路:二分时间,对于每个时间跑一遍最大流,判断最大流是不是人数即可.我们还需要用二 ...

  6. G - 土耳其冰淇凌 Gym - 101194D(二分答案 + 贪心检验)

    熊猫先生非常喜欢冰淇淋,尤其是冰淇淋塔.一个冰淇淋塔由K个冰淇淋球堆叠成一个塔.为了使塔稳定,下面的冰淇淋球至少要有它上面的两倍大.换句话说,如果冰淇淋球从上到下的尺寸是A0, A1, A2,···, ...

  7. Gym - 100283F F. Bakkar In The Army —— 二分

    题目链接:http://codeforces.com/gym/100283/problem/F F. Bakkar In The Army time limit per test 2 seconds ...

  8. Gym 101064 D Black Hills golden jewels (二分)

    题目链接:http://codeforces.com/gym/101064/problem/D 问你两个数组合相加的第k大数是多少. 先sort数组,二分答案,然后判断其正确性(判断过程是枚举每个数然 ...

  9. Codeforces Gym 100803G Flipping Parentheses 线段树+二分

    Flipping Parentheses 题目连接: http://codeforces.com/gym/100803/attachments Description A string consist ...

随机推荐

  1. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.

    转自:https://www.zhihu.com/question/20948649?sort=created 我最近也遇到这个问题了,用传统的快捷方式加参数并没有用,不知道是不是和chrome版本有 ...

  2. Duboo 与springboot整合

    https://github.com/apache/incubator-dubbo-spring-boot-project 当采用properties方式时,可以用下方的注解 1.pom <de ...

  3. 20165304学习基础和C语言基础调查

    20165304学习基础和C语言基础调查 你有什么技能比大多人(超过90%以上)更好? 我觉得自己应该算是一个比较宅的人,因为在高中的时候我在外边租房子住,我爸妈都去上班,平时就只有我自己,当然只能自 ...

  4. putty登录显示IP

    登陆服务器 cd vi .bashrc 在尾部加入如下代码 if [ "$SSH_CONNECTION" != '' -a "$TERM" != 'linux' ...

  5. 尚硅谷redis学习11-jedis操作redis

    前面学习了redis的知识后,下面学习一下如何在java中通过jedis操作redis. 所需jar包:commons-pool-xxxx.jar,jedis-xxx.jar 下面看一下常用操作: 1 ...

  6. 使用dig或nslookup指定dns服务器查询域名解析

    一般来说linux下查询域名解析有两种选择,nslookup或者dig,而在使用上我觉得dig更加方便顺手.如果是在linux下的话,只要装上dnsutils这个包就可以使用dig命令, 安装bind ...

  7. 初级JS

    唐太宗  李世民  杀了大哥 和弟弟  登上的皇位    一个人当皇帝 排他性是指一种物品具有可以阻止其他人使用该物品的特性. 排他性思想: 在程序中但凡是遇到只让自己怎么样,不让别人怎么样的效果,都 ...

  8. C# 无法识别的属性“targetFramework”。请注意属性名称区分大小写。错误解决办法

    “/CRM”应用程序中的服务器错误. 配置错误 说明: 在处理向该请求提供服务所需的配置文件时出错.请检查下面的特定错误详细信息并适当地修改配置文件. 分析器错误消息: 无法识别的属性“targetF ...

  9. SQL Server Assembly (SQL CLR) 还原数据库后的问题

    最近弄项目迁移的时候遇到还原数据库(SQL Server 2008)后遇到的一个问题: 消息 10314,级别 16,状态 11,第 1 行 在尝试加载程序集 ID 65536 时 Microsoft ...

  10. Spark之机器学习(Python版)(一)——聚类

    https://www.cnblogs.com/charlotte77/p/5437611.html