题库首页 › GESP等级认证(C++) › 题目 11925

空间跳跃 题面描述 小杨在二维空间中有n个水平挡板,并且挡板之间彼此不重叠,其中第i个挡板处于水平高度hi,左右端点分别位于li 与 ri。 小杨可以在挡板上左右移动,当小杨移动到右端点时,如果再向右移动会竖直掉落,从而落到下方第一个挡板上,移动到左端点时同理。小杨在挡板上每移动1个单位长度会耗费 1个单位时间,掉落时每掉落1 个单位高度也会耗费 1个单位时间。 小杨想知道,从第 s个挡板上的左端点出发到第t个挡板需要耗费的最少时间是多少? 注意:可能无法从第 s个挡板到达到第 t个挡板。 输入格式 第一行包含一个正整数n ,代表挡板数量。 第二行包含两个正整数s,t ,含义如题面所示。 之后 n行,每行包含三个正整数li,ri,hi ,代表第 i个挡板的左右端点位置与高度。 输出格式 输出一个整数代表需要耗费的最少时间,如果无法到达则输出 -1。 样例1 样例范围 耗费时间最少的移动方案为,从第3个挡板左端点移动到右端点,耗费3个单位时间,然后向右移动掉落到第 2个挡板上,耗费 100000-6=99994个单位时间,之后再向右移动1个单位长度,耗费1个单位时间,最后向右移动掉落到第1个挡板上,耗费3个单位时间。共耗费 3+99994+1+3=100001个单位时间。 数据范围

空间跳跃 题面描述 小杨在二维空间中有n个水平挡板,并且挡板 题目配图空间跳跃 题面描述 小杨在二维空间中有n个水平挡板,并且挡板 题目配图

正确答案:以每块挡板左/右端点为状态建图。挡板内左右端点间可走(r-l);从右端点x=r_i竖直下落到下方第一个覆盖x的挡板j,花费高差h_i-h_j,落到j上x处再走到j端点。Dijkstra求起点(第s块左端点)到第t块的最短路,不可达输出-1。

试卷来源:202406 CCF-GESP编程能力等级认证C++八级真题

本卷相关题目

在线做题 同科目题库