小塔需要走路从城市的一端前往另一端。城市可以视为一个长条形,共有N个街区,按顺序排成一列,
每个街区的右侧紧挨着下一个街区的左侧。
初始时,小塔位于第1个街区的左侧,他的目标是到达第N个街区的右侧。步行通过第n个街区时,小塔需要花费的时间为an。
同时,小塔可以选择坐最多M次地铁。每个街区的左侧都有地铁站,每次坐地铁可以穿越前方最少1个,最多k个连续的街区。
这个题的本质是一个路径规划问题。你有n个街区,每个街区有步行时间a_i,可以选择步行一格或乘坐地铁跳跃1到K个街区,地铁每格花费B时间。你最多可以坐M次地铁,目标是找到从第1个街区到第N个街区的最小时间消耗。
此题是一个经典的动态规划问题,设置dp[i][j]为走到第i个街区并且已经坐了j次地铁的最短时间,转移则分为两种情况,一种是从前一个位置到当前位置不做地铁,一种是坐地铁到当前位置,第二种情况要枚举从前方哪里坐的地铁到现在的位置,并取最小值,初始化则为全不坐地铁的情况