题目描述

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

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

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

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

输入格式

第11行 22 个整数 NN 和 MM,NN表示树木的数量,MM 表示需要的木材总长度。
第22行 NN 个整数表示每棵树的高度。

输出格式

11 个整数,表示砍树的最高高度。

输入输出样例

输入 #1复制

5 20
4 42 40 26 46

输出 #1复制

36

说明/提示

1\leq N\leq10^61≤N≤106,1\leq M\leq 2\times10^91≤M≤2×109,每棵树的高度\lt10^9<109,所有木材长度值和\gt M>M。

#include<bits/stdc++.h>
using namespace std;
#define ll long long
const ll maxn=1e6+6;ll a[maxn];
int main()
{ll n,m;ll l;ll r;ll maxnn ;ll mid; ll ans;cin>>n>>m;for(ll i=1;i<=n;i++){       cin>>a[i];maxnn=max(maxnn,a[i]);}l=0;r=maxnn;while(l+1<r){mid=(l+r)>>1;ans=0;for(ll i=1;i<=n;i++){ if(a[i]>mid)ans=ans+a[i]-mid;}if(ans>=m)l=mid;//因为这个越大,mid越大,ans就越少 elser=mid;}cout<<l;
}

P1873 砍树(二分查找模板)相关推荐

  1. 洛谷 P1873 砍树 (二分答案)

    P1873 砍树 题意 给定n个树木,指定一个伐木高度h,h高度以上的部分皆可得到,求想要得到总共数量为m的木头,h最高是多少. 1<=N<=1000000,1<=M<=200 ...

  2. 洛谷P1873 砍树(二分)

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

  3. P1873 砍树(简单二分)

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

  4. 二分答案二题-P1182数列分段II,P1873砍树

    T1:P1182T1:P1182T1:P1182 数列分段SectionIISectionIISection II 评测记录:https://www.luogu.org/recordnew/lists ...

  5. 二分查找模板及题目汇总

    文章目录 经典二分查找模板 Templete1 Templete2 Templete3 查找第一次出现target的位置 查找最后一次出现target的位置 查找与target最接近的数的位置 第一个 ...

  6. 洛谷 P1873 [COCI 2011/2012 #5] EKO / 砍树 二分

    # [COCI 2011/2012 #5] EKO / 砍树 ## 题目描述 伐木工人 Mirko 需要砍 $M$ 米长的木材.对 Mirko 来说这是很简单的工作,因为他有一个漂亮的新伐木机,可以如 ...

  7. P1873 砍树(二分答案)

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

  8. P1873 砍树 【二分】

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

  9. 二分查找模板全面总结

    二分查找 二分法的引入 情形1 1.X的平方根 2.搜索旋转排序数组 情形2 1.第一个错误的版本 2.寻找峰值 3.寻找旋转排序数组中的最小值 情形3 在排序数组中查找第一个和最后一个位置 当遇到查 ...

最新文章

  1. 3大主流前端框架对比
  2. python网络爬虫 - 如何伪装逃过反爬虫程序
  3. 吴恩达“机器学习”——学习笔记六
  4. PAT甲级1032 Sharing :[C++题解]链表
  5. QT中Sqlite的使用
  6. zoj 3841 Cards
  7. 分享9个实用的电脑维修技巧,赶紧收藏吧!
  8. 身陷 Bug 时,优秀的开发工程师是如何寻求帮助的?
  9. 采用Kettle分页处理大数据量抽取任务
  10. 当文科生遇见R语言,照样玩得转
  11. Linux内核的温度阀值,Linux内核参数.doc
  12. 最新Python3.10官方文档PDF来了(最新Python大词典)
  13. 1分钟教会python代码实现电影下载
  14. 5分钟了解Pandas的透视表
  15. 【Python实战】用Scrapy编写“1024网站种子吞噬爬虫”,送福利
  16. 解压遇到压缩文件已损坏或者不可预料的压缩文件末端
  17. mcu和服务器通讯协议pdf,Modbus DTU与服务端间的通讯协议
  18. java个人常见异常
  19. gg修改器修改数值没有用怎么办_gg修改器怎么用怎么修改数值 修改数值方法介绍...
  20. word 目录里面添加分节符下一页出现空白页的解决方法

热门文章

  1. 每日一题——输入某年某月某日,判断是这一年的第几天
  2. 激活 MarkDownPad 2
  3. Pulsar 社区周报| 2020-12-05 ~ 2020-12-11
  4. Pd催化的C(sp 2)-H官能化合成N-苯并噻唑-2-基酰胺
  5. 爱奇艺发布iQUT未来影院,移动观影千亿新市场初露端倪
  6. 编程番外篇:Rider体验与常用功能分享
  7. 大数据分析——点“数”成金
  8. Flutter开发之Http网络请求
  9. Python爬取百度疫情数据并预测未来七天及其可视化
  10. 前端工作随笔日记 Day02