蓝桥杯2023年第十四届省赛真题-蜗牛 - C语言网 (dotcpp.com)
动态规划的思想
-
问题分析:问题的本质是求解蜗牛从起点到终点的最短时间。蜗牛可以选择直接爬行到下一个竹竿的底部,也可以利用传送门来快速移动。
-
状态定义:在动态规划中,我们需要定义状态以及状态之间的转移。在这里,我们定义两个状态:
time_bottom[i]:表示到达第i根竹竿底部的最短时间。time_portal[i]:表示到达第i根竹竿传送门入口的最短时间。
-
状态转移方程:根据问题的特点,我们可以得到状态之间的转移关系:
-
对于
time_bottom[i]:- 如果当前是最后一根竹竿,则只需考虑从上一根竹竿底部到当前竹竿底部的时间以及从当前竹竿传送门出口到底部的时间,取两者的最小值即可。
- 如果不是最后一根竹竿,则需要考虑从上一根竹竿底部直接到当前竹竿底部的时间以及从当前竹竿传送门出口到底部的时间,同样取两者的最小值。
-
对于
time_portal[i]:- 考虑到达传送门入口的两种方式:从底部爬到入口,或者从传送门的出口爬到入口。取这两种方式中的最小时间作为到达传送门入口的最短时间。
-

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



