当前位置: 首页 > news >正文

二分答案-P1873 砍树

P1873 砍树
题目来源-洛谷题库
在这里插入图片描述
参考代码


#include <bits/stdc++.h>
using namespace std;
const int M = 1e6+5;
int n, m, a[M], l = 0, r = -1, ans = -1;// 判断是否满足条件 
bool check(int x) {long long sum = 0;for(int i=1; i<=n; i++) {  sum += max(0, a[i]-x); //高度不能为负数 }return sum >= m;   // 砍出的总和是否大于m
} int main() {cin >> n >> m;for(int i=1; i<=n; i++) {cin >> a[i];r = max(r, a[i]);  // 确定右边界,为最高的树的高度}while(l <= r) {  // 二分答案int mid = l + (r-l)/2; if(check(mid)) { //缩小区间ans = mid;  l = mid + 1; } else {r = mid-1; }}cout << ans;
}
http://www.xdnf.cn/news/931249.html

相关文章:

  • MySQL中的部分问题(2)
  • Spring整合Mybatis
  • WEB3全栈开发——面试专业技能点P3JavaScript / TypeScript
  • 数据库、数据仓库、数据中台、数据湖相关概念
  • MATLAB R2025a|Win中文|仿真建模|安装教程
  • uni-app学习笔记二十三--交互反馈showToast用法
  • Docker 安装 Ubuntu
  • day27-shell编程(自动化)
  • 附加模块--Qt Shader Tools功能及架构解析
  • typeof运算符 +unll和undefined的区别
  • AI书签管理工具开发全记录(十七):Sun-Panel书签同步实现
  • 【ArcGIS Pro微课1000例】0072:如何自动保存编辑内容及保存工程?
  • 68常用控件_QGroupBox的使用
  • C语言中的文件操作
  • Android写一个捕获全局异常的工具类
  • 【hive】函数集锦:窗口函数、列转行、日期函数
  • stm32-c8t6实现语音识别(LD3320)
  • 【Mac 从 0 到 1 保姆级配置教程 16】- Docker 快速安装配置、常用命令以及实际项目演示
  • 【SpringBoot+SpringCloud】Linux配置nacos踩坑大全
  • AI时代:学习永不嫌晚,语言多元共存
  • 思澈sdk-新建lcd
  • LeetCode--25.k个一组翻转链表
  • 从0开始学习R语言--Day20-ARIMA与格兰杰因果检验
  • 【第八篇】 SpringBoot高级配置(配置篇)
  • CZGL.SystemInfo:跨平台的系统信息获取库
  • AUTOSAR实战教程--DoIP_01_配置项解释
  • 0x-3-Oracle 23 ai-sqlcl 25.1 集成安装-配置和优化
  • Linux下GCC和C++实现统计Clickhouse数据仓库指定表中各字段的空值、空字符串或零值比例
  • Go基本语法——go语言中的四种变量定义方法
  • 【Java学习笔记】BigInteger 和 BigDecimal 类