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

二分 机器人的跳跃问题

二段性:找到一个值,大于此值的时候都成立,小于的时候都不成立

更新的方式只有两种,左边的mid更新不需要+1;右边的mid更新需要+1


//对能量进行二分,确定能量的范围
//特判防止溢出int
#include<bits/stdc++.h>
using namespace std;
using ll=long long;
const int N=1e5+9;
int a[N],n;bool check (int e)
{for(int i=1;i<=n;i++){e=2*e-a[i];//更新能量if(e>=1e5)return true;if(e<0) return false;}return true; 
}int main()
{cin>>n;for(int i=1;i<=n;i++) scanf("%d",&a[i]);//对能量进行二分//确定能量的范围//当当前能量大于最大的能量的时候一定可以满足条件int l=0,r=1e5;while(l<r){int mid=l+r>>1;//当前能量满足,满足条件的最小值在当前mid的左边,所以r=mid//l=mid+1,mid=l+r>>1;//else l=mid+1 对对应的mid不需要+1//找到满足条件的最小值if(check(mid)) r=mid;else l=mid+1;}printf("%d",l);return 0;
}

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

相关文章:

  • Hive:复杂数据类型之Map函数
  • R 字符串:深入理解与高效应用
  • 设计模式Python版 桥接模式
  • 记5(一元逻辑回归+线性分类器+多元逻辑回归
  • 【Python】第七弹---Python基础进阶:深入字典操作与文件处理技巧
  • Nginx 运维开发高频面试题详解
  • 下载OpenJDK
  • Web3.js详解
  • 学习串行通信
  • 【leetcode强化练习·二叉树】同时运用两种思维解题
  • Rank-analysis-1.2——一款基于LCU API的排位分析工具,大四学生独立开发
  • 什么是门控循环单元?
  • Google Chrome-便携增强版[解压即用]
  • 智慧园区综合管理系统如何实现多个维度的高效管理与安全风险控制
  • 【PyTorch】7.自动微分模块:开启神经网络 “进化之门” 的魔法钥匙
  • 从0开始使用面对对象C语言搭建一个基于OLED的图形显示框架(协议层封装)
  • Mac M1 源码安装FFmpeg,开启enable-gpl 和 lib x264
  • 【Quest开发】手柄单手抓握和双手抓握物体切换
  • DB-GPT试用
  • ​《Ollama Python 库​》
  • Java的Integer缓存池
  • Ubuntu16.04编译安装Cartographer 1.0版本
  • Qt调用FFmpeg库实时播放UDP组播视频流
  • C# 类与对象详解
  • 【Elasticsearch 基础入门】Centos7下Elasticsearch 7.x安装与配置(单机)
  • 大模型本地部署使用方法(Ollama脚手架工具、FisherAI浏览器大模型插件、AnythingLLM大模型集成应用平台)
  • 【华为OD-E卷 - 报数游戏 100分(python、java、c++、js、c)】
  • 深入理解Spring框架:从基础到实践
  • 一觉醒来全球编码能力下降100000倍,新手小白的我决定科普C语言——函数
  • CentOS 上安装 Go (Golang)