机器人正在玩一个古老的基于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)≤105,

输入样例1:
5
3 4 3 2 4
输出样例1:
4
输入样例2:
3
4 4 4
输出样例2:
4
输入样例3:
3
1 6 4
输出样例3:
3

主要用到的思想是二分:
可以找到一个能量数值将题目所描述的事情一分为二,(假设这个数值是e)则e左边的数值不满足游戏过程中能量为负数,e右边的数值均满足能量满足条件。这e是这个题中所求得最小的能量。

当check满足条件的时候,mid右边的值一定均满足情况而mid左边的值不知道是否满足,

    while(l<r){int mid=(l+r)/2;if( check(mid)==true ) r=mid;else l=mid+1;}

注意根据题中的描述不论是往上跳还是往下跳的情况
跳之后 e=2e-h[i+1]
e+e-h[i+1]
假设当e>=maxh[i]的时候
当前能量:2e-h[i+1]
当前能量:e+e-h[i+1]
当前能量:e+maxh-h[i+1]
所以当前能量一定严格>0
所以当e比 max[h]大的时候就可以不用再比较了一定成立

    for(int i=0;i<n;i++){e=2*e-st[i];if(e>=1e5) return true;if(e<0) return false;}
#include<iostream>
#include<cstdio>
using namespace std;
const int N=100010;
int st[N];
int n;
bool check(int mid){int e=mid;for(int i=0;i<n;i++){e=2*e-st[i];if(e>=1e5) return true;if(e<0) return false;}return true;
}
int main(){cin>>n;for(int i=0;i<n;i++){scanf("%d",&st[i]);}int l=0;int r=1e5;while(l<r){int mid=(l+r)/2;if( check(mid)==true ) r=mid;else l=mid+1;}cout<<l<<endl;
}

本题思路来源于Acwing yxc老师 y总nbhhhhh

机器人跳跃问题(字节跳动笔试题)相关推荐

  1. 2018 java 字节跳动笔试题

    想进字节跳动同学注意了,这里是修真院面试笔记整理,那么这里就给大家分享一下 [2018 java 字节跳动笔试题] 一面 实现算法:求全排列. 输入:一个整数n 输出:从1至n所有数字组成的全排列 简 ...

  2. 2021大厂字节跳动笔试题(含答案)

    2021字节跳动web工程师笔试题 第一题 [ {num: 12, city: 'beijing'}, {num: 56, city: 'shanghai'}, {num: 167, city: 'g ...

  3. 最新版大厂字节跳动笔试题(含答案)

    字节跳动测试工程师笔试题 1.阶段评审与同行评审的区别? 参考答案: 同行评审目的:发现小规模工作产品的错误,只要是找错误: 阶段评审目的:评审模块 阶段作品的正确性 可行性 及完整性 同行评审人数: ...

  4. 字节跳动笔试题(一)——18岁生日问题

    前言 之前于6月30日,在下参加了字节跳动游戏研发岗的笔试. 做的一般般,很多题目也都忘了,不过好在对四道编程题还记得比较清楚,这里做一个简单的记录. 18岁生日问题 这道题的大意是给定一个人的出生日 ...

  5. 字节跳动笔试题02万万没想到之抓捕孔连顺

    我叫王大锤,是一名特工.我刚刚接到任务:在字节跳动大街进行埋伏,抓捕恐怖分子孔连顺.和我一起行动的还有另外两名特工,我提议 我们在字节跳动大街的N个建筑中选定3个埋伏地点. 为了相互照应,我们决定相距 ...

  6. 字节跳动笔试题:1. 小于N的质数数量;2. 逆时针二维数组;3. 判断a+bc

    1. 小于N的质数数量 import java.util.Scanner;/*** 计算小于N的质数数量* @author Turing**/ public class Main4 {public s ...

  7. 母牛生小牛问题-字节跳动笔试题

    题目 母牛从3-7岁初每年会生产1头母牛,10岁后死亡(10岁仍然存活).假设初始有1头刚出生的母牛,请问第n年有多少头母牛?(年从第一年开始计数) 注: 第3年初会出生第一头牛,故第3年有两头母牛 ...

  8. 字节跳动笔试题2020 (抖音电商)

    题目: 写一个以权重来进行随机分配的程序. 拿到这个题的时候我思考了一下,幸好我之前看了Ribbon 的权重算法.核心的思想就是把所有的权重值加起来,做随机值计算最终确定随机值在权重总值中的位置,从而 ...

  9. 2020字节跳动笔试题

    第一题 小明总是睡过头,所以他定了很多闹钟,只有在闹钟响的时候他才会醒过来并且决定起不起床,从他起来算起他需要X分钟到达教室,上课时间为当天的A时B分,请问他最晚可以什么时候起床. 输入描述:第一行为 ...

最新文章

  1. win设置计算机网络,Win10怎么修改网络类型,Win10网络类型怎么设置?
  2. cvsdfgdfdf
  3. LeetCode 289. Game of Life--Java,Python解法
  4. 解决Linux下inode使用率100%的问题
  5. PMCAFF | 从200块到300万,史上最全自媒体报价单
  6. 真假应用傻傻分不清,HideIcon病毒玩起“隐身计”
  7. 数据科学的5种基本的面向业务的批判性思维技能
  8. Linux课程实践一:Linux基础实践(SSH)
  9. linux定时任务总结。
  10. react native进一步学习(NavigatorIOS 学习)
  11. MySql的语法规范
  12. python写入excel数据教程_python实现数据写入excel表格
  13. USB描述符解析和USB_CCID描述符设置
  14. xpath中的position()函数使用
  15. 日记(docker)
  16. atom配置python_在Atom中设置Python开发环境
  17. SAP发票校验容差的理解
  18. RN-原生混合开发之热更新
  19. selenium高级自动化编程
  20. idc服务器排名戴尔型号,IDC公布2019年全球服务器市场数据:戴尔、HPE和浪潮分列前三...

热门文章

  1. js中的parseInt()用法
  2. 基于Unity3D三维模型的动作插值(空间关键帧动画实现)
  3. linux断开会话不中断进程,Linux让进程后台运行且连接断开不影响(nohup、setsid、disown、screen)...
  4. Lecture1 听觉系统
  5. 现代原木风格 初秋的温暖
  6. 半小时搞定简易股票爬虫!Python就是这么强!
  7. 福师计算机基础,福师计算机基础第一次作业.docx
  8. 基于GAN的图像生成模型
  9. 蓝牙技术|VR可穿戴设备促进元宇宙的发展
  10. 用户信息管理系统总结