今日头条2019年笔试题 机器人跳跃问题
机器人跳跃问题
机器人正在玩一个古老的基于 DOS 的游戏。
游戏中有 N+1 座建筑——从 0 到 NN编号,从左到右排列。
编号为 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
分析:
读清题后 转化题意
设机器人在第i座建筑的能量值为Ei 每跳跃到下一个建筑有两种情况
如果 E(i+1)<H(i+1) E(i+1) = Ei - (Hi - Ei) = 2*Ei-Hi
如果 E(i+1)>H(i+1) E(i+1) = Ei + Ei - Hi = 2*Ei-Hi
可见 不管哪种情况 E(i+1)的值都为2*Ei-Hi 所以 只要保证所有的Ei>0 机器人便可以完成游戏
二分法:
#include <cstdio>
#include <cstring>
using namespace std;const int N = 1e5+10;
int n;
int h[N];bool check(int e){//从第一座建筑物向后爬for(int i=0;i<n;i++){e = 2*e-h[i];if (e>1e5) return true;else if(e<0) return false;}return true;
}
int main(){scanf("%d",&n);for(int i=0;i<n;i++){scanf("%d",&h[i]);}int l=0,r=1e5;while(l<r){int mid = l+r>>1; //选择区域是左半边/从左向右找第一个满足值 l+r>>1if(check(mid)) r = mid;else l = mid+1;}printf("%d",l);return 0;
}
今日头条2019年笔试题 机器人跳跃问题相关推荐
- 【今日头条2019,笔试题】机器人跳跃问题
机器人跳跃问题 机器人正在玩一个古老的基于 DOS 的游戏. 游戏中有 N + 1 N+1 N+1 座建筑--从 0 0 0 到 N N N 编号,从左到右排列. 编号为 0 0 0 的建筑高度为 0 ...
- 今日头条2017校招笔试题
一些出题人出了n道题,每道题有一个难度系数,难度系数满足以下关系的3道题可以组成一套试卷,为了使这n道题使用上且只能使用一次,问出题人最少还要出多少题? a<=b<=c b-a<=1 ...
- 2019面试/笔试题(算法题)总结
实战链接:https://www.acwing.com/activity/content/8/ Google KickStart 2019 A轮 1. 训练 题目描述 作为一名学校足球教练,你的任务是 ...
- 今日头条:任务调度面试题解答
今日头条:任务调度面试题解答 题目: 产品经理(PM)有很多好的idea,而这些idea需要程序员实现.现在有N个PM,在某个时间会想出一个 idea,每个 idea 有提出时间.所需时间和优先等级. ...
- 百度2019校招笔试题
百度2019校招笔试题 1. 探险安排 小明要为n个人计划一次火星的探险,其中一个重要的任务是为每个参与者安排食物.仓库里面有m个能用一天的食物包裹,每个食物包裹有不同的类型ai.每个人每天必须用且只 ...
- 今日头条php面试经验,「今日头条」前端面试题和思路解析
一篇文章和一道面试题 作者用一道2017年「今日头条」的前端面试题为引子,分步讲解了最终结果的执行原因.其中涉及到了不少概念,比如异步的执行顺序,宏任务,微任务等等,同时作者限定了执行范围,以浏览器的 ...
- 2017今日头条校招前端面试题(一面)
今日头条向来是业界的薪资标杆,所以想去的也多,面试的难度自然就上来了.由于止步于一面,这里整理一下自己前端面试的问题. 总的来说,面试偏整体计算机知识的考察,其中重点是算法,而且一题多问,考察较为细致 ...
- 今日头条一面笔试面试题!!!!!完整
参加字节跳动的面试,笔试一个小时,面试一个多小时,中午在公司食堂吃了顿饭,然后完毕,邮件通知我挂掉了. 先笔试,然后拿着卷子,面试官会根据笔试题从后往前问,整个过程感觉学习到超级多东西 先说笔试题-来 ...
- 半年工作经验今日头条和美团面试题面经分享
昨天,下着小雨去面试了,特地避开雨天,竟然还是雨天,宝宝不想说话... 正好2点到,先去字节跳动,一进去就是客厅沙发桌子,旁边有书架和书,摆设一般,一点都感受不出大公司的气质,去了一直等了30分钟,催 ...
最新文章
- java设计模式 工厂模式
- 和lock一起学beego 博客系统开发为例(五)
- 第一次创业失败的总结 - 产品设计
- No MyBatis mapper was found in ‘[xx.mapper]‘ package. Please check your configuration
- boost::hana::zip_with用法的测试程序
- webpack基础第一篇(配置文件)
- Angular2 组件与模板 -- 输入和输出属性
- php flash chart,openflashchart 2.0 简单案例php版
- C/C++ http协议发送字段,文件,单个和多张图片
- P4196 [CQOI2006]凸多边形 /【模板】半平面交
- Essential Studio for Windows Forms发布2017 v2,持office 2016和主题定制
- java定时任务插件_jfinal定时调度任务插件QuartzPlugin
- Cisco Packet Tracer 6.2 安装教程 | 计算机网络
- 贝壳云php源码,贝壳云P1 刷机指南
- 基于vue+muse-ui的简历生成器
- 将python 脚本转换为exe格式
- 联想ThinkPad升级BIOS和EC新手教程
- php 499,服务频繁499(Nginx+PHP-fpm),应该从哪些角度入手追查这问题?
- 【Linux】Linux文件权限的理解
- DELL XPS 8930-R 从优盘安装centos7服务器