Wizmann / ACM-ICPC

感觉自己做了假题。
http://wizmann.tk
Other
63 stars 29 forks source link

Leetcode 1654. Minimum Jumps to Reach Home #84

Open Wizmann opened 3 years ago

Wizmann commented 3 years ago

题意

Problem

给一个数轴,需要从0点位置走到N点位置。数轴的范围是 0 ~ INF,也就是说可以走到大于N的点。

规定有一些点不可以走(雷区),记作forbidden[]。每一步可以向前走a步,或者向后走b步。

问最少需要多少步。

解法

本题是一道简单的最短路问题,可以使用BFS或者DFS来解。

唯一的难点在于如何估计在数轴上最大的位置。

考虑不可以走的点,那么至少需要走到max(forbidden) + 1的位置之后,才可以进行自由的调整。

那么我们走到的最大位置P一定有:

综上可得,P <= a + b + max(N, max(forbidden))

当然你也可以直接N * 4莽一把,只要不T就能过。