转自我的洛谷题解
递推!
想想这题可以用 记忆化搜索 ,那就!!!
用 a [ i ] 表示第 i 层楼上的数字。
用 f [ i ] [ j ] 表示第 i 个时间点时,第 j 个楼层是否可以到达。
当第 i 个时间点时,f [ i - 1 ] [ j ] 可行,那么 f [ i ] [ j + a[ j ] ] 和 f [ i ] [ j - a[ j ] ] 也可行。//上下两个方向嘛
关于输出 -1:
当每个楼层 (except 目的楼层) 都到达过了,说明没有方法可以到达 B 楼。
我代码里意思是一样的:如果 i 从 1~n-1 都循环完了(至少到达过 n-1 个楼层了),还没有到达 B 楼,那就输出 -1呗。
代码