伐木工人米尔科需要砍倒 MM 米长的木材。这是一个对米尔科来说很容易的工作,因为他有一个漂亮的新伐木机,可以像野火一样砍倒森林。不过,米尔科只被允许砍倒单行树木。

米尔科的伐木机工作过程如下:米尔科设置一个高度参数 HH(米),伐木机升起一个巨大的锯片到高度 HH,并锯掉所有的树比H高的部分(当然,树木不高于 HH 米的部分保持不变)。米尔科就获得树木被锯下的部分。

例如,如果一行树的高度分别为 2020,1515,1010 和 1717,米尔科把锯片升到 1515 米的高度,切割后树木剩下的高度将是 1515,1515,1010 和 1515,而米尔科将从第 11 棵树得到 55 米,从第 44 棵树得到 22 米,共得到 77 米木材。

米尔科非常关注生态保护,所以他不会砍掉过多的木材。这正是他为什么尽可能高地设定伐木机锯片的原因。帮助米尔科找到伐木机锯片的最大的整数高度 HH,使得他能得到木材至少为 MM 米。换句话说,如果再升高 11 米,则他将得不到 MM 米木材。

输入格式
第一行 22 个整数 N\ (1\le N \le 10^5)N (1≤N≤10
5
) 和 M\ (1\le M \le 2\cdot 10^9)M (1≤M≤2⋅10
9
),分别表示树木的数量和需要的木材总长度。

第二行 NN 个整数表示每棵树的高度,值均不超过 10^910
9
。所有木材长度之和不低于 MM,因此必有解。

输出格式
一个整数,表示木机锯片的最大的高度 HH。

输出时每行末尾的多余空格,不影响答案正确性

样例输入复制
5 20
4 42 40 26 46
样例输出复制
36

**本题可以看到最大最小字眼,所以可以判断是二分法,那么就二分枚举高度H,然后通过检查在这个高度底下,砍下的树的高度总和如果总和大于m,则就减少砍伐的高度,代码如下:注意用long long **

//@author:hairu,wu
//@from:ahut
#include<iostream>
using namespace std;
typedef long long ll;const ll max_n=100100;
ll n,m;//n棵树,需要的总长度》=m
ll h[max_n]; bool check(ll x){ll cnt=0;for(ll i=0;i<n;i++){if(h[i]>x){cnt+=h[i]-x;}}return cnt>=m;
}int main(){cin >>n>> m;ll left=0;ll right=0;for(ll i=0;i<n;i++){cin >> h[i];if(h[i]>right) right=h[i];}ll ans=0;while(left<=right){ll mid=(left+right)/2;if(check(mid)){ans=mid;left=mid+1;}else{right=mid-1;}}cout<<ans<<endl;return 0;
}

计蒜客-1891-砍树(二分)相关推荐

  1. [计蒜客][二分]切割钢管

    题目来源 计蒜客程序设计竞赛基础课(蓝桥杯省赛) 算法标签 二分 题目描述 思路 我们要算最高数量,则要计算某一个高度,总共能被N个钢管切出K个来 计算一个钢管能切出多少只需要a[i]/NUM 只要计 ...

  2. 【原创】tyvj1038 忠诚 计蒜客 管家的忠诚 线段树(单点更新,区间查询)...

    [原创]tyvj1038 忠诚 & 计蒜客 管家的忠诚 & 线段树(单点更新,区间查询) 最简单的线段树之一,中文题目,不翻译.... 注释讲的比较少,这已经是最简单的线段树,如果看不 ...

  3. K - Triangle 计蒜客 - 42405

    K - Triangle 计蒜客 - 42405 题意: 给你一个三角形的三点,再给你三角形边上一个点,让你求另一个点(也要在三角形上),使得平分三角形的面积 题解: 计算几何 三角形的三边ab,ac ...

  4. 在线计算机 授课,在线计算机教育网站计蒜客改版 推出算法竞赛课程

    [赛迪网讯]4月16日消息,近日,新型在线计算教育平台计蒜客进行了重大改版,网站从底层架构到课程内容都进行了大幅调整.计蒜客新版除了服务速度和稳定性大幅提升外,还对用户的学习体验进行了优化:同时,计蒜 ...

  5. 计蒜客 - 蒜头君的任务

    计蒜客 蒜头君的任务 题目描述 蒜头君的上司给蒜头君布置了一个任务,蒜头君维护一个数列,要求提供以下两种操作: 查询操作. 语法:Q L 功能:查询当前数列中末尾 L L L 个数中的最大的数,并输出 ...

  6. DD 摆磁铁(计蒜客信息学8月普及组模拟赛)

    DD 摆磁铁 这道题来自 计蒜客信息学8月普及组模拟赛 普及组!! 把我一个TG选手看懵了 看来我要回去打普及了 题目大意 给出一个n个节点的树,要把树上给定的2*m个节点两两配对,两个节点配对的产生 ...

  7. 计蒜客一月入门赛:《三个火枪手》题解

    题目链接(https://nanti.jisuanke.com/t/52314) 有 n 个人,其中有 m 对相互认识的关系. 一个人的知名度定义为 有多少人 和他相互认识. 现在蒜头君需要从这 n ...

  8. 计蒜客题解——T1157:派

    题目相关 题目链接 计蒜客,https://nanti.jisuanke.com/t/T1157. 我的OJ,http://47.110.135.197/problem.php?id=4951. 题目 ...

  9. 计蒜客 - 新年礼物

    计蒜客 新年礼物 新年了,蒜厂 BOSS 要给小蒜头们发新年礼物,新年礼物有很多份,怎么分配这些礼物呢?蒜厂 BOSS 打算让大家玩一个游戏. 蒜头们可以从抽奖箱里抽出 NNN 个字符串,第 iii ...

  10. [计蒜客 15504 百度的科学计算器(简单)]表达式求值

    [计蒜客 15504 百度的科学计算器(简单)]表达式求值 分类: Math 表达式求值 1. 题目链接 [计蒜客 15504 百度的科学计算器(简单)] 2. 题意描述 求一个只带加减的实数表达式. ...

最新文章

  1. 《精通 ASP.NET MVC 3 框架(第三版)》----第2章 准备工作 2.1 准备工作站
  2. eclipse 集成 github
  3. 【数据挖掘笔记三】数据预处理
  4. O'Reilly 1500 份问卷调研:2019 年 Serverless 落地到底香不香?
  5. android重写方法,android中native js中重写方法问题
  6. 领域驱动设计在马蜂窝优惠中心重构中的实践
  7. Linux的一些简单命令操作
  8. 面试官 | 这位连单点登录都不知道,让他回家等通知去吧
  9. FOC电机库 定点PID代码分析
  10. HTML+JavaScript+CSS的人员信息管理系统
  11. 【洛谷刷题笔记】P4093 [HEOI2016/TJOI2016] 序列
  12. 笔记本计算机风扇连线,机箱风扇电源怎么接线?机箱风扇接口知识及接法图解教程...
  13. 微服务2——服务的注册,调用(Nacos服务注册中心+服务调用+调用负载均衡)sca-comsumersca-provider
  14. Profinet高速协议下,PLC之间如何实现无线以太网通讯?
  15. ASR6500S低功耗LoRa+射频前端LPWAN应用芯片
  16. 微信小程序开发之编译自动生成新文件的解决办法
  17. C 语言交换 a 和 b 值的 4 种方式
  18. python爬虫-爬取社区论坛房产信息-01
  19. 在线瓦片地图服务资源 总结
  20. 超薄网络变压器(百兆千兆万兆)如何选型?及相关产品集成功能分类

热门文章

  1. 【解惑】专科生在IT的发展之路
  2. C#之Sokect通讯实例
  3. Laravel自定义artisan命令在Sell中运行
  4. 技术创业者如何突破创业瓶颈:需要有正确的金钱观
  5. android检测usb设备——usb打印机
  6. Python爬虫——个股的股价与成交量分析
  7. JavaScript学习笔记10
  8. 算命先生有三不算:不算死人、不算同行、不算自己。
  9. 计算机教室场地技术条,特殊教育学校功能室建设标准
  10. [笨木头FireFly01]入门篇1·最简单的服务端和客户端连接