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

730. 机器人跳跃问题--二分

题目:

730. 机器人跳跃问题 - AcWing题库

思路: 二分

1.当起始能量E大于最大建筑高度1e5 时,E的能量在整个条约过程中全程递增,则大于E的初始能量也必然成立(满足二段性)。故最小初始能量范围为[0,1e5](确定了二分范围)。

2.满足二分条件,可用二分!!!

代码: 

//二分
/*二段性:当起始能量E满足机器人跳跃过程E!=0的条件时,
        比初始值E大的值也必然成立*/
#include<iostream>
#include<cstdio>
using namespace std;
const int N=1e5+10;
int h[N],n;

bool check(int e)
{
    for(int i=1;i<=n;i++){//遍历机器人到达每座建筑上的能量E
        e=2*e-h[i];
        if(e<0)return false;//在到达最后的第n座建筑前<=0,必然会出现负,说明e取小了
        if(e>=1e5)return true;//如果到达某座建筑上时的能量大于等于建筑高度最大值,
                             //那机器人在后面的跳跃过程中必然是递增的,不可能为0
    }
    return true;
}

int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)scanf("%d",&h[i]);
    int L=1,R=1e5;
    while(L<R){
        int mid=L+R>>1;//二分
        if(check(mid))R=mid;
        else L=mid+1;
    }
    cout<<L;
}


http://www.kler.cn/a/106698.html

相关文章:

  • 有限元分析学习——Anasys Workbanch第一阶段笔记(13)网格单元分类、物理场与自由度概念
  • Golang Gin系列-1:Gin 框架总体概述
  • 软考中级复习篇章:数据结构部分的复习
  • 牛客----mysql
  • macOS Sequoia 15.3 beta3(24D5055b)发布,附黑、白苹果镜像下载地址
  • mono3d汇总
  • 【报错】java.sql.SQLException: Invalid utf8mb3 character string: ‘ACED00‘
  • Fourier分析导论——第1章——Fourier分析的起源(E.M. Stein R. Shakarchi)
  • vue 使用openlayers导出渲染的地图
  • 在ffmpeg中,网络视频流h264为什么默认的转为YUV而不是其他格式
  • 工业4.0的安全挑战与解决方案
  • IDEA配置HTML和Thymeleaf热部署开发
  • yo!这里是进程间通信
  • Redis 的优势
  • mysql冷拷贝大表
  • (PyTorch)PyTorch中的常见运算(*、@、Mul、Matmul)
  • 如何使用SHC对Shell脚本进行封装和源码隐藏
  • 【C语言】memmove()函数(拷贝重叠内存块函数详解)
  • 基于ARM+FPGA+AD的多通道精密数据采集仪方案
  • 装饰者模式
  • R语言生物群落(生态)数据统计分析与绘图实践技术应用
  • 数组的最长递减子序列
  • Project Costs
  • 第四章 文件管理 十、文件系统的全局结构
  • 前端工程化面试题及答案【集合】
  • 网络通信 | 内网穿透