Contents
Problem
高度必須由高到低,只有此點的上下左右可走,找最長距離。
Solution
以每個點為起點做 DFS , 並用DP記錄下來加速,dp[x][y]
表以此為起點可走的最遠距離。不用擔心 dp[x][y]
的走法會走到剛剛經過的點,因為能到 (x,y) 代表前面的點都比 (x,y) 大,而 dp[x][y]
會經過的點都比 (x,y) 小。
注意本身也算是一點和邊界處理。
Code
1 |
|
高度必須由高到低,只有此點的上下左右可走,找最長距離。
以每個點為起點做 DFS , 並用DP記錄下來加速,dp[x][y]
表以此為起點可走的最遠距離。不用擔心 dp[x][y]
的走法會走到剛剛經過的點,因為能到 (x,y) 代表前面的點都比 (x,y) 大,而 dp[x][y]
會經過的點都比 (x,y) 小。
注意本身也算是一點和邊界處理。
1 |
|