洛谷P1873 [COCI 2011/2012 #5] EKO / 砍树 题解

洛谷P1873 [COCI 2011/2012 #5] EKO / 砍树 题解

题目传送门。

思路

我们可以使用二分答案法。

二分查找砍树的高度\(H\),每次使用\(check(long\ long\ x)\)函数用于检测在\(x\)米高度时是否可以砍到\(m\)米以上的木头。

\(check\)函数是用一个循环从1到\(n\),每次计数器\(sum\)加上0和\(h_i-x\)的最大值(因为不可能砍到负数米木头)。最后返回\(sum\le m\)

在二分循环内,如果\(check\)函数返回true,则代表木头太多了,需要提高高度,所以要把\(l\)赋值为\(mid\),反之,返回false时,代表木头太少了,需要降低高度,所以要把\(r\)赋值为\(mid\)

代码

#include<bits/stdc++.h>
#define endl '\n'using namespace std;int n;
long long m,t[1000005];
bool check(long long h){long long sum=0;for(int i=1;i<=n;i++){sum+=max(0ll,t[i]-h);}return sum>=m;
}
int main(){cin>>n>>m;for(int i=1;i<=n;i++) cin>>t[i];int l=0,r=400001;while(l+1<r){int mid=(l+r)/2;if(check(mid)) l=mid;else r=mid;}cout<<l<<endl;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/880745.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL注入-Windows/Docker 环境部署 SQLi-labs 靶场

一、SQLi-labs简介 SQLi-labs是由印度程序员开发,专门用于练习SQL注入的靶场,其中包含各种注入姿势,并适用于GET和POST等场景。 主要包含:基础错误注入、报错注入、盲注、MySQL读写文件、更新查询注入、插入查询注入、Header头部注入、二次注入、绕过WAF、绕过addslashes函…

openai-whisper+fastapi实现语音转文本

Whisper 是一种通用的语音识别模型。它基于各种音频的大型数据集进行训练,也是一种多任务模型,可以执行多语言语音识别、语音翻译和语言识别。Transformer 序列到序列模型针对各种语音处理任务进行训练,包括多语言语音识别、语音翻译、口语识别和语音活动检测。这些任务共同…

在阿里云ECS上一键部署DeepSeek-R1

DeepSeek-R1 是一款开源模型,也提供了 API(接口)调用方式。据 DeepSeek介绍,DeepSeek-R1 后训练阶段大规模使用了强化学习技术,在只有极少标注数据的情况下提升了模型推理能力,该模型性能对标 OpenAl o1 正式版。DeepSeek-R1 推出后,该模型热度持续攀升。 部署流程点击 部…

5-多线程详解【狂神】

线程简介 1、多任务 看似多个任务都在做,本质上我们大脑在同一时间依旧只做一个事情 2、多线程 普通方法调用:只有主线程一条执行路径 多条执行路径,主线程和子线程并行交替执行线程实现(重点) 线程状态 线程同步(重点) 线程通信问题 高级主题

win11配置虚拟机centos网络 nat模式

1,配置nat8网络 2,配置虚拟机虚拟网络虚拟机 → 编辑 → 虚拟网络编辑器虚拟机中输入命令: vi /etc/sysconfig/network-scripts/ifcfg-ens33 配置后重启网络: service network restart

终于有人说清楚AI开发的全流程了!

阿里妹导读本文将深入解析AI需求开发流程,全面覆盖从需求分析、开发、测试到发布及后续的监控和反馈收集等各个阶段。引言继上篇文章 《掌握Prompt写作技巧:写出完美Prompt的秘籍》对Prompt写作技巧的探讨,本篇将深入解析AI需求开发流程,全面覆盖从需求分析、开发、测试到发…

真的不错!微信公众号文章批量下载工具3.0版,支持评论、图片、word文件导出!

一、前言 之前发布的旧版本的说明,可以看下之前发布的这3篇文章: 真的免费!微信公众号文章批量下载工具,轻松导出html、word、pdf文档! 微信公众号文章批量下载工具1.2版本更新,轻松导出html、word、pdf文档! 重磅更新!微信公众号文章批量下载工具2.0版,轻松导出html、…

【题解】杂题选讲

杂题选讲 AT_abc350_g [ABC350G] Mediator 先考虑没有加边操作,如何回答询问? 设 \(fa_x\) 表示 \(x\) 的父亲,那么对 \((x,y)\) 的询问有解只有三种情况。 \(fa_x=fa_y\ne 0, fa_{fa_x}=y, fa_{fa_y}=x\)。 只需要维护 \(fa\) 数组即可回答所有询问,如何维护?使用启发式合…

十二. Redis 集群操作配置(超详细配图,配截图详细说明)

十二. Redis 集群操作配置(超详细配图,配截图详细说明) @目录十二. Redis 集群操作配置(超详细配图,配截图详细说明)1. 为什么需要集群-高可用性2. 集群概述(及其搭建)3. Redis 集群的使用4. Redis 集群故障恢复5. Redis 集群的 Jedis 开发(使用Java程序连接 Redis 同时开启集…

Docker:Docker搭建Jenkins并共用宿主机Docker部署服务(六)跨服务器远程部署前端服务

前言 继续完成跨服务器远程部署前端服务,Jenkins的搭建与插件安装可以观看上一篇文章:https://www.cnblogs.com/nhdlb/p/18561435 配置SSH远程服务器连接 这里需要安装 SSH 连接的插件,可以观看上一篇文章进行安装。开始配置SSH连接保存!! 新建视图 方便将整个项目的前端和…

一文详解文件摆渡系统是什么?企业需要什么样的文件摆渡产品?

文件摆渡系统是一种旨在实现企业内不同网络、安全域、网段之间的文件传输、同步、共享、管理与处理的工具或平台。文件摆渡系统的主要作用是确保文件能够在不同的存储环境、操作系统、应用程序或部门之间有效传递,同时保障文件的安全性、完整性和合规性。一、文件摆渡系统的核…

IvorySQL 升级指南:从 3.x 到 4.0 的平滑过渡

日前,IvorySQL 4.0 重磅发布,全面支持 PostgreSQL 17,并且增强了对 Oracle 的兼容性。关于 IvorySQL 4.0 的介绍,各位小伙伴可以通过这篇文章回顾:IvorySQL 4.0 发布:全面支持 PostgreSQL 17. 在 IvorySQL 4.0 发布后,有小伙伴私下询问升级方法,那么本篇文章就来详细描…