AcWing 730. 机器人跳跃问题
机器人正在玩一个古老的基于DOS的游戏。
游戏中有N+1座建筑——从0到N编号,从左到右排列。
编号为0的建筑高度为0个单位,编号为 i 的建筑高度为H(i)个单位。
起初,机器人在编号为0的建筑处。
每一步,它跳到下一个(右边)建筑。
假设机器人在第k个建筑,且它现在的能量值是E,下一步它将跳到第k+1个建筑。
如果H(k+1)>E,那么机器人就失去H(k+1)-E的能量值,否则它将得到E-H(k+1)的能量值。
游戏目标是到达第N个建筑,在这个过程中能量值不能为负数个单位。
现在的问题是机器人至少以多少能量值开始游戏,才可以保证成功完成游戏?
输入格式
第一行输入整数N。
第二行是N个空格分隔的整数,H(1),H(2),…,H(N)代表建筑物的高度。
输出格式
输出一个整数,表示所需的最少单位的初始能量值上取整后的结果。
数据范围
1≤N,H(i)≤10^5,
输入样例1:
5
3 4 3 2 4
输出样例1:
4
输入样例2:
3
4 4 4
输出样例2:
4
输入样例3:
3
1 6 4
输出样例3:
3
代码如下:
#include <iostream>
using namespace std;
const int N = 1e5;
int w[N];
int n;
bool check(int mid)
{for (int i = 0;i<n;i++){mid = 2*mid-w[i];if (mid > 1e5) return true;if (mid < 0) return false;}return true;
}int main()
{cin>>n;for (int i = 0;i<n;i++) cin>>w[i];int l = 1,r = 1e5;while(l < r){int mid = l+r>>1;if (check(mid)){r = mid;}else{l = mid+1;}}cout<<r<<endl;
}
AcWing 730. 机器人跳跃问题相关推荐
- AcWing 730. 机器人跳跃问题 (二分)
AcWing 730. 机器人跳跃问题 思路: 由题意可以推出从当前位置跳到下一个位置时,下一个位置的能量值一定为: 2∗E当前−H下一位置2*E_{当前}-H_{下一位置}2∗E当前−H下一位置 ...
- 【今日头条2019,笔试题】机器人跳跃问题
机器人跳跃问题 机器人正在玩一个古老的基于 DOS 的游戏. 游戏中有 N + 1 N+1 N+1 座建筑--从 0 0 0 到 N N N 编号,从左到右排列. 编号为 0 0 0 的建筑高度为 0 ...
- 今日头条2019年笔试题 机器人跳跃问题
机器人跳跃问题 机器人正在玩一个古老的基于 DOS 的游戏. 游戏中有 N+1 座建筑--从 0 到 NN编号,从左到右排列. 编号为 0 的建筑高度为 0 个单位,编号为 i 的建筑高度为 H(i) ...
- 机器人跳跃问题(字节跳动笔试题)
机器人正在玩一个古老的基于DOS的游戏. 游戏中有N+1座建筑--从0到N编号,从左到右排列. 编号为0的建筑高度为0个单位,编号为 i 的建筑高度为H(i)个单位. 起初,机器人在编号为0的建筑处. ...
- 四足机器人跳跃轨迹优化
matlab自带优化工具和casadi对相同参考轨迹进行优化的结果 废话不多说,直接上图,规划时间0.5s 分16步计算,期望终点位置[1,0,0.2]' 由于时间较短,且给定的参考轨迹为简单的线性插 ...
- 平面单腿机器人跳跃控制研究——后续内容
重新编辑公式比较繁琐,后续内容保存在文件中. 转载于:https://www.cnblogs.com/SHSF/p/4536144.html
- Acwing 3812.机器人走迷宫【全排列】
1.题目描述 题目链接:点击这里 2.解决思路 只需要考虑,不管是什么序列,可选方案最多24种(4!种)所以我们只需要用next_permutation搞出0123的全排列,并让它们每一个值与序列中不 ...
- 蓝桥杯C++ AB组辅导课 第二讲 二分与前缀和 Acwing
例题 AcWing 789. 数的范围 给定一个按照升序排列的长度为 n 的整数数组,以及 q 个查询. 对于每个查询,返回一个元素 k 的起始位置和终止位置(位置从 0 开始计数). 如果数组中不存 ...
- 蓝桥杯C++ AB组辅导课
整理的算法模板合集: ACM模板 今天在AcWing闲逛白嫖到了yxc老师的蓝桥杯C++ AB组辅导课的题单,正好快要蓝桥杯了,我准备每天花半个小时刷5道这个题单里的水题,练一练,不然到时候我各种花里 ...
最新文章
- PHP协程:并发 shell_exec
- 构建工具Gradle
- Linux下使用mail命令发送邮件
- Lync与Exchange 2013 UM集成配置
- 自己动手写一个简单的MVC框架(第二版)
- FastDFS服务重启
- UDP(socket)接和数据案例封装成C++代码
- 命令行刷新Magento索引管理
- 第4章 变量、作用域和内存问题
- 如何进行个人知识管理和提高自己能力?
- 大数据_Hbase_面试题0001
- Rabbitmq学习笔记008---AmqpException: No method found for class java.lang.String
- notepad++,vim驼峰命名与下划线的互相转换
- 开源开放的知识图谱工具和数据生态
- 推荐系统/计算广告相关资料整理
- Python使用scrapy框架编写自动爬虫爬取京东商品信息并写入数据库
- informix软件
- python使用opencv进行身份证信息识别_基于opencv和tesseract实现身份证扫描件的身份证号码提取试验...
- 向日葵远程软件连接Ubuntu无法显示桌面之解决方案
- 宽带远端服务器无响应什么意思,宽带远程服务器无响应
热门文章
- C和指针之IO流和缓冲区
- C和C++之用extern “C“实现它们之间的互调
- C++之invalid initialization of non-const reference of type ‘int’ from an rvalue of type ‘int’
- Android之ActivityManager与Proxy模式的运用
- 【C语言简单说】十三:变量的生命周期
- 史上最让数学家无奈的规定!背后真相让人不敢相信,可是没有人能证明对错.........
- 超震撼!你没见过的24张震撼照片
- 这个地球仪太惊艳了,陪孩子畅聊天文地理。
- 机器学习都需要有哪些数学知识?
- java属于面相_[Java教程]面相对象