机器人跳跃问题 (二分)

机器人跳跃问题

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

思路

二分,注意能量的大小,不能一直跑下去,会爆掉,需要及时退出

AC代码

#include <iostream>
#include <algorithm>
using namespace std;

const int N = 1e5 + 5;
typedef long long ll;
int a[N];
int n;int Max = 0;

bool check(ll x){
    for(int i = 0;i < n;i ++){
        if(a[i] > x) x -= (a[i] - x);
        else x += (x - a[i]);
        if(x < 0) return false;
        if(x > Max) return true;
    }
    return true;
}

int main(){
    cin >> n;
    for(int i = 0;i < n;i ++){
       cin >> a[i]; 
       Max = max (Max,a[i]);
    } 
    int l = 0,r = Max;
    while(l < r){
        int mid = (r + l) >> 1;
        if(check(mid)) r = mid;
        else l = mid + 1;
    }
    cout << l << endl;
    return 0;
}
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 仿生跳跃机器人是一种基于仿生学原理设计的机器人,它能模仿人类的跳跃动作并具备一定的自主能力。CSND(CSDN社区)是一个持续关注科技发展的社区平台,为了推动机器人技术的应用与发展,CSND团队研发了这款仿生跳跃机器人。 这款机器人采用了先进的传感器技术和动力控制系统,能够感知周围环境并做出相应的跳跃动作。它可以通过视觉传感器获取跳跃目标的位置和高度,通过多关节运动装置实现准确的跳跃动作。 此外,仿生跳跃机器人具备一定的自主能力。它可以根据不同的跳跃目标和环境条件,通过自主学习和智能决策,调整跳跃动作的力度和距离,以达到最佳效果。 CSND对于这款机器人的研发具有多重目的。首先,它可以应用于娱乐和体育领域,例如用于表演和娱乐活动中,增加互动性和娱乐性。其次,它还可以用于科学研究和实验室实验,例如模拟人类跳跃动作,进一步研究人类运动机理。最后,它还可以应用于教育和培训领域,例如作为教学工具,帮助学生更好地理解运动原理和仿生学概念。 总之,仿生跳跃机器人是一项具有广泛应用前景的科技创新。它结合了仿生学原理和机器人技术,能够模仿人类跳跃动作并具备一定的自主能力。这款机器人的研发对于推动机器人技术的发展和应用具有重要的意义。 ### 回答2: 仿生跳跃机器人是一种模仿生物跳跃运动能力的机器人。它利用先进的传感器技术和人工智能算法来实现高效的跳跃动作。 首先,仿生跳跃机器人拥有优秀的感知能力。它配备了多种传感器,如摄像头、惯性测量单元和力传感器等,能够准确地感知周围环境和自身状态。通过收集环境信息并实时处理,它可以快速适应不同的跳跃环境,并做出相应的跳跃动作。 其次,仿生跳跃机器人具备智能的控制系统。机器人内置了强大的人工智能算法,可以根据环境条件和任务要求进行动作规划和控制。通过深度学习等技术,机器人可以自主地学习和优化跳跃策略,达到更高的跳跃效率和准确性。 此外,仿生跳跃机器人的机械结构设计也十分重要。它通常采用轻量化材料和灵活的关节,以提高机器人的灵活性和驱动效率。机器人的腿部结构灵感来源于生物动物,可以更好地适应不同的支撑环境,提供更稳固的跳跃支撑力。 最后,仿生跳跃机器人具有广泛的应用前景。它可以应用于救援任务中,可以跳过障碍物、突破困境,快速到达目标地点。此外,它还可以用于探索险峻地形,进行高空跳跃等极限运动。同时,仿生跳跃机器人还可以在工业生产中承担重要的物流运输任务。 总而言之,仿生跳跃机器人是一种融合了感知技术、智能控制和生物学原理的先进机器人。随着技术的不断发展,我们相信它将在各个领域展示出更加出色的表现。 ### 回答3: 仿生跳跃机器人是一种基于仿生学原理设计的机器人,其外形与人类的身体结构相似,具备人类类似的弹跳能力。CSND是一家知名的技术论坛,这里分享了关于仿生跳跃机器人的信息。 仿生跳跃机器人的设计灵感源自于人类的运动方式和动物的跳跃能力。它的身体结构采用了类似人体骨骼和肌肉的机械结构,可以通过类似于人体关节的部件实现动作的协调和控制。这种仿生设计使得机器人能够更加灵活地进行跳跃动作,并且具备较高的稳定性和能量转换效率。 仿生跳跃机器人的应用领域广泛,可以用于探索险峻的地形,进行搜救任务,甚至是参与娱乐活动。它可以通过弹跳跨越障碍物,迅速移动到目标地点,完成任务。在搜救任务中,它能够跳跃到灾难现场,寻找被困者并进行救援。在娱乐活动中,仿生跳跃机器人可以展示出人类所不能及的高度和灵活性,为观众带来独特的视觉享受。 为了实现这种跳跃能力,仿生跳跃机器人配备了先进的感知和控制系统。它通过激光雷达、摄像头和其他传感器实时感知周围环境,实现对地形和障碍物的识别。同时,它采用了强大的算法和控制器,能够实时调整肌肉的张力和关节的运动,以保持平衡和精准的跳跃。 总之,仿生跳跃机器人是一种利用仿生学原理设计的机器人,具备人类类似的弹跳能力。它可以应用于各种领域,如探险、搜救和娱乐等,为人类带来更多便利和乐趣。在CSND上,你可以找到更多关于仿生跳跃机器人的技术和研究内容,了解更多关于这一领域的最新进展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值