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

二分查找P1873 [COCI2011-2012#5] EKO / 砍树

P1873 [COCI2011-2012#5] EKO / 砍树 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

这个题就是给新手练手的,在那个位置上在进行,寻找合适的砍树高度,下面在介绍一个二分查找的模板

int binarySearch(vector<int>& nums, int target) {int left = 0;int right = nums.size() - 1;while (left <= right) {int mid = left + (right - left) / 2;if (nums[mid] == target) {return mid; // 找到目标值,返回索引} else if (nums[mid] < target) {left = mid + 1; // 目标值在右半部分,更新左边界} else {right = mid - 1; // 目标值在左半部分,更新右边界}}return -1; // 没有找到目标值
}
#include<bits/stdc++.h>
using namespace std;
long long n,m,tree[1000000+10],l,r,mid;
int main()
{scanf("%ld%ld",&n,&m);for(long long  i=1;i<=n;i++){scanf("%lld",&tree[i]);r=max(tree[i],r);}while(l<=r){mid=(r+l)>>1;long long temp=0;for(int i=1;i<=n;i++){if(tree[i]>mid){temp+=tree[i]-mid;}}if(temp<m){r=mid-1;}else l=mid+1;}printf("%lld",r);return 0;
}

这个代码的奇特之处在于这个temp的更新,不断的在中间位置靠拢,虽然这个也是二分查找的思想但是在这本蒟萝也想了好久

http://www.lryc.cn/news/104608.html

相关文章:

  • 【BOOST程序库】正则表达式相关操作
  • 阿里云国际版在使用过程中应该注意什么呢?
  • Flutter Provider 共享状态管理
  • std vector 用法
  • vue vite ts electron ipc addon-napi c arm64
  • 机器人科普--AGILOX 叉车
  • Django的生命周期流程图(补充)、路由层urls.py文件、无名分组和有名分组、反向解析(无名反向解析、有名反向解析)、路由分发、伪静态
  • selenium交互代码
  • 下载远程服务器文件
  • [SQL挖掘机] - 索引
  • C++STL库中的list
  • 【LeetCode 75】第十七题(1493)删掉一个元素以后全为1的最长子数组
  • 配置IPv6 over IPv4 GRE隧道示例
  • Google Earth Engine谷歌地球引擎提取多波段长期反射率数据后绘制折线图并导出为Excel
  • 第三大的数
  • 正则表达式中的方括号[]有什么用?
  • SQL编写规范
  • Azure pipeline自动化打包发布
  • 【算法提高:动态规划】1.4 状态机模型 TODO
  • ip link add 命令
  • unity事件处理
  • 《ChatGPT原理最佳解释,从根上理解ChatGPT》
  • 大数据Flink(五十):流式计算简介
  • 13-4_Qt 5.9 C++开发指南_基于QWaitCondition 的线程同步_Wait
  • STM32(HAL)多串口进行重定向(printf函数发送数据)
  • 29_互联网(The Internet)(IP数据包;UDP;TCP;DNS;OSI)
  • xShell常用命令
  • React性能优化之Memo、useMemo
  • IDEA开启并配置services窗口
  • vue2企业级项目(三)