https://codeforces.com/problemset/problem/1118/D2

也是很好想的一个二分啦。

验证m的可行性的时候,肯定是把最多咖啡因的咖啡先尽可能平均分到每一天,因为同一天内调换喝咖啡的顺序只会非增,而且平均分更优是显然的。

#include<bits/stdc++.h>
using namespace std;
#define ll long long int n,m;
int a[]; int ok(int mi){
ll sum=;
for(int i=;i<n;i++){
sum+=max(,a[i]-i/mi);
}
if(sum>=m)
return ;
else
return ;
} int binary(){
int l=,r=1e9,m;
while(){
m=(l+r)>>;
if(l==m){
if(ok(l)){
return l;
}
else if(ok(r)){
return r;
}
else{
return -;
}
}
if(ok(m)){
r=m;
}
else{
l=m+;
}
}
} int main(){
scanf("%d%d",&n,&m);
for(int i=;i<n;i++){
scanf("%d",&a[i]);
}
sort(a,a+n,greater<int>()); printf("%d\n",binary());
}

Codeforces - 1118D2 - Coffee and Coursework (Hard Version) - 二分的更多相关文章

  1. Codeforces Round #540 (Div. 3)--1118D2 - Coffee and Coursework (Hard Version)

    https://codeforces.com/contest/1118/problem/D2 和easy version的主要区别是,数据增加了. easy version采用的是线性查找,效率低 在 ...

  2. Codeforces Round #540 (Div. 3) D2. Coffee and Coursework (Hard Version) (二分,贪心)

    题意:有\(n\)个数,每次可以选\(k(1\le k\le n)\)个数,并且得到\(a_1+max(0,a_2-1)+max(0,a_3-2)+...+max(0,a_k-k+1)\)的贡献,问最 ...

  3. Codeforces Round #540 (Div. 3) D1. Coffee and Coursework (Easy version) 【贪心】

    任意门:http://codeforces.com/contest/1118/problem/D1 D1. Coffee and Coursework (Easy version) time limi ...

  4. Coffee and Coursework (Hard Version)

    Coffee and Coursework (Hard Version) time limit per test 2.5 seconds memory limit per test 256 megab ...

  5. Coffee and Coursework (Easy version)

    Coffee and Coursework (Easy version) time limit per test 1 second memory limit per test 256 megabyte ...

  6. Codeforces Round #540 (Div. 3)--1118D1 - Coffee and Coursework (Easy version)

    https://codeforces.com/contest/1118/problem/D1 能做完的天数最大不超过n,因为假如每天一杯咖啡,每杯咖啡容量大于1 首先对容量进行从大到小的排序, sor ...

  7. 【Codeforces 1118D1】Coffee and Coursework (Easy version)

    [链接] 我是链接,点我呀:) [题意] 题意 [题解] 从小到大枚举天数. 然后贪心地,从大到小分配a[i]到各个天当中. a[n]分配到第1天,a[n-1]分配到第2天,...然后a[n-x]又分 ...

  8. [Codeforces 865C]Gotta Go Fast(期望dp+二分答案)

    [Codeforces 865C]Gotta Go Fast(期望dp+二分答案) 题面 一个游戏一共有n个关卡,对于第i关,用a[i]时间通过的概率为p[i],用b[i]通过的时间为1-p[i],每 ...

  9. Codeforces 749D:Leaving Auction(set+二分)

    http://codeforces.com/contest/749/problem/D 题意:有几个人在拍卖场竞价,一共有n次喊价,有q个询问,每一个询问有一个num,接下来num个人从这次拍卖中除去 ...

随机推荐

  1. TFTP服务器

    为什么要学习有关TFTP服务器的安装及配置呢?主要是为了后续学习有关linux系统的无人值守安装做准备. TFTP简单文件传输协议,使用UDP的69端口.主要提供文件的上传和下载,TFTP一般是适用于 ...

  2. 华夏互联总经理汪照发接受程序猿杂志专訪-2014年6月江西IDC排行榜

     作为软件开发界最权威的期刊,<程序猿>杂志一直是业界推崇的高端读物,能被其採訪是极大的荣耀. 上个月,作为江西省内的排名第一的站点开发企业和专业的站点研发厂商,Zoomla!逐浪CM ...

  3. apk解包——修改后缀为zip

    将apk修改后缀为zip后,可直接解包查看资源文件

  4. linux PC手把手搭建minigui3.0开发环境

    1.下载网址http://www.minigui.com/en/download/ 2.下载资料: 3.安装过程: (1)安装 libminigui-gpl-3.0.12.tar.gz tar zxv ...

  5. C++类使用static小例子(新手学习C++)

    //为什么类的成员中不能包括动态分配的数据,若包含静态数据怎么使用?#include <iostream>using namespace std;class point{    priva ...

  6. Kafka知识点汇总

    整体结构 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZXJpY19zdW5haA==/font/5a6L5L2T/fontsize/400/fill/I ...

  7. Sharepoint2013 列表的NewForm 页面加入一个 保存新建 button

    昨天一同事问我怎样在sharepoint2013的NewForm.aspx页面上加入一个 save and new的button.实现save 和new的功能.save的功能和默认的save按钮效果一 ...

  8. a column-oriented DBMS

    https://clickhouse.yandex/docs/en/introduction/what_is_clickhouse.html

  9. Tomcat启动报:invalid LOC header (bad signature)的问题

    原因:这种一般是因为项目依赖的某个jar包损坏引起的, 解决办法: 1.右键项目,选择maven,更新(update maven project) 2.通过右击项目名 ->  Run as -& ...

  10. js中return的作用

    1.终止函数的继续运行. 当遇到if…… else是.若出现return,就会出现终止运行,不会继续做出判断 <html> <head> <title>return ...