快速链接

  • 原题网址
  • 题目描述
  • 格式
    • 输入格式
    • 输出格式
  • 样例
    • 输入样例
    • 输出样例
  • 解题思路
  • Code

原题网址

由于某些原因,这个网址会进不去…

1285.砍伐树木 - 原题网址

题目描述

mxymxymxy被小www叫去砍树了。mxymxymxy需要砍倒MMM米长的木材。现在mxymxymxy弄到了一个奇怪的伐木机。
mxymxymxy的伐木机工作过程如下:mxymxymxy设置一个高度参数HHH(米),伐木机升起一个巨大的锯片到高度HHH,并锯掉所有的树比HHH高的部分(当然,树木不高于HHH米的部分保持不变)。mxymxymxy就得到树木被锯下的部分。
例如,如果一行树的高度分别为20,15,1020,15,1020,15,10和171717米,mxymxymxy把锯片升到151515米的高度,切割后树木剩下的高度将是15,15,1015,15,1015,15,10和151515米,而mxymxymxy将从第111棵树得到555米,从第444棵树得到222米,共得到777米木材。
mxymxymxy非常关注生态保护,所以tatata不会砍掉过多的木材。这正是tatata为什么要尽可能高地设定伐木机锯片的原因。帮助mxymxymxy找到伐木机锯片的最大的整数高度HHH,使得tatata能得到的木材至少为MMM米。换句话说,如果再升高111米,则tatata将得不到MMM米木材。

格式

输入格式

第111行:222个整数NNN和M,NM,NM,N表示树木的数量(1≤N≤10000001\le N\le1\ 000\ 0001≤N≤1 000 000),M 表示需要的木材总长度(1≤M≤20000000001\le M\le2\ 000\ 000\ 0001≤M≤2 000 000 000)。
第222行:NNN个整数表示每棵树的高度,值均不超过10000000001\ 000\ 000\ 0001 000 000 000。保证所有木材长度之和大于 MMM,因此必然有解。

输出格式

一行111个整数,表示砍树的最高高度。

样例

输入样例

5 20
4 42 40 26 46

输出样例

36

解题思路

这道题非常明显可以用二分算法。当砍到mid层时,如果大于要求的木材长度,就再砍高一点;反之,则砍低一点。直到求出最优解。并且本题也不需要使用高精度。

Code

#include<iostream>
#include<iomanip>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<ctime>
#include<cstring>
#include<string>
#include<map>
#include<queue>
#define maxn 1000000 // 作者标准设置
using namespace std;
long long n, m, a[maxn + 1], ans, maxh;void init() // 在此执行预处理
{cin>>n>>m;for (int i = 1; i <= n; i ++){cin>>a[i];if (a[i] > maxh) maxh = a[i];}
}void comp()
{long long s, l = 1, r = maxh - 1, mid; // 定义二分算法变量 while (l <= r) // 二分算法 {s = 0;mid = (l + r + 1) / 2;for (int i = 1; i <= n; i ++) if (a[i] > mid) s += a[i] - mid;if (s >= m) l = mid + 1;else r = mid - 1;}ans = (l + r) / 2;
}void oput() // 在此输出总结果
{cout<<ans;
}int main()
{ios::sync_with_stdio(false); // 加快输入输出速度 init();comp();oput();return 0;
}

大功告成∼\sim∼

【SSL】2021-08-17 1285.砍伐树木相关推荐

  1. (四十六:2021.08.17)《医疗物联网单导联心电波心房颤动检测研究》

    <医疗物联网单导联心电波心房颤动检测研究> 讲在前面 摘要 1.介绍 2.准备工作 2.1 符号 2.2 问题公式 2.3 便携式设备 2.4 数据库 2.5 性能评估算法 3.数据预处理 ...

  2. Go 1.17 RC2发布 | Gopher Daily (2021.08.03) ʕ◔ϖ◔ʔ

    每日一谚:Package name space is flat Go技术生态 Go 1.17 RC2发布 - https://groups.google.com/g/golang-announce/c ...

  3. 本博客导读(2021/08/09更新)

    文章目录 1. 简介 1.1 博客精神 1.2 写作目的 1.3 技术方向 1.4 博主 1.5 版权说明 2 推荐内容 2.1 主要代表作 2.2 其他推荐内容 3. 程序类 3.1 C#程序设计 ...

  4. [2021.1.17多校省选模拟4]T1(莫比乌斯反演/组合数学/枚举倍数)

    [2021.1.17多校省选模拟4]T1 一般人都会想着去枚举直线的斜率,但是枚举斜率之后就会产生多条直线,并且这些直线的长度不一,难以快速求解,所以我们考虑换一种方法枚举. 枚举最远点对的横纵坐标之 ...

  5. IO多路复用之epoll总结 http://www.cnblogs.com/Anker/archive/2013/08/17/3263780.html

    IO多路复用之epoll总结 http://www.cnblogs.com/Anker/archive/2013/08/17/3263780.html

  6. 2021.03.17 pokémon小游戏开发记录与周总结

    2021.03.17 pokémon小游戏开发记录与周总结 此篇仅包含部分项目代码,只是个人的学习总结. 文章目录 2021.03.17 pokémon小游戏开发记录与周总结 前言 一.前期准备 二. ...

  7. 2021.08.09【普及组】模拟赛C组比赛总结

    文章目录 2021.08.09[普及组]模拟赛C组比赛总结 写在前面: T1 :[普及模拟]生产武器 题目大意: 正解: T2 :[普及模拟]城市连接 题目大意: 正解: T3 :[普及模拟]抢救文件 ...

  8. 《安富莱嵌入式周报》第227期:2021.08.23--2021.08.29

    往期周报汇总地址:http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12&filter=typeid&typeid=104 ...

  9. 纯Go实现的Firebase的替代品 | Gopher Daily (2021.08.11) ʕ◔ϖ◔ʔ

    每日一谚:Global variables should have longer names. Go技术生态 如何才能成功将Python切换到Go - https://itnext.io/opinio ...

  10. UE4 Material_01:堡垒之夜砍伐树木效果

    UE4 Material_01:堡垒之夜砍伐树木效果 https://zhuanlan.zhihu.com/p/48684767 首发于UE4的Material效果教程 UE4 Material_01 ...

最新文章

  1. 浅谈Angular如何自定义创建指令@Directive
  2. Deep Learning回顾#之LeNet、AlexNet、GoogLeNet、VGG、ResNet
  3. 如何用Java创建ZIP文档?
  4. Eclipse不给提示no default proposals
  5. android ndk 9,Android NDK:警告:APP_PLATFORM android-9大于android:minSdkVersion 8
  6. python做的数据图表怎么在flask中显示_Python:如何在Flask应用程序的表中显示MySQL查询的数据...
  7. LinQ学习之旅(1)
  8. IOS LocationManager定位国内偏移,火星坐标(GCJ-02)解决方法
  9. php强制浏览器不缓存,php强制浏览器不缓存和设置浏览器缓存
  10. linux读取.data文件,Android获取文件夹路径 /data/data/
  11. Android通过webservice连接SQLServer 详细教程(数据库+服务器+客户端)
  12. 一键查询快递物流单号,分析提前签收
  13. freemarker ftl java_FreeMarker学习1(Ftl)
  14. 车载导航升级凯立德的步骤
  15. flask的pin码攻击——新版本下pin码的生成方式
  16. html语言中标记h1代表什么意思,html中h1是什么意思
  17. 计算机2级免考那几项,计算机二级证书可以免考哪些自学考试科目?
  18. 图书管理系统项目导入
  19. Epoll的本质(内部实现原理)
  20. webstorm安装及汉化后无法设置的原因总结

热门文章

  1. 华为数通 软开 2022校招 面试全过 已开奖
  2. C#获取电脑硬件信息(CPU ID、主板ID、硬盘ID、BIOS编号)
  3. X32位 天堂2 二章/三章 服务端协议号修改方法
  4. 小黑与Vista试用手记
  5. 如何去掉暴风影音广告,去掉暴风影音暂停时的广告
  6. 微博这样的软件怎么测试,新浪微博都盘上了,这个测试玩嗨了!
  7. 富户端商业应用开发教程 开发易买网电子商务交易平台教程
  8. 微型计算机原理与接口技术第六版课后答案,微型计算机原理与接口技术(第6版)...
  9. MP4视频损坏修复工具下载
  10. 关于uni-app框架下,用户真实头像采集的优化方案