APCS 2020-10 實作題第三題
問題連結:
https://zerojudge.tw/ShowProblem?problemid=f314
想法:
先計算第M層任何房間左右移動可獲得的最高經驗值,接著從第M-1層到第1層,
逐次計算任何房間左右移動可獲得的最高經驗值,但須加上該路線終點房間下方房間
可獲得的最高經驗值,算到最上層後選取最大值即為解答。
| 0 | 5 | -2 | 1 | 
| 13 | -19 | 3 | 1 | 
| -21 | 17 | -13 | 8 | 
| 0 | -20 | 6 | 19 | 
| 原始陣列 | |||
首先計算第M層任意房間為起點,可以獲得的最高經驗值,並存在相應位置的DP陣列中
| 5 | 5 | 25 | 25 | 
| 最高經驗值陣列(DP) | |||
接著計算第M-1層,此時需要將下方房間的最大值加入考量
如(1,2),(左上角為 (1,1) ),其路線為(2,2)->(2,3)->(2,4)->(3,4)
| 40 | 40 | 35 | 36 | 
| 29 | 12 | 37 | 34 | 
| 16 | 37 | 20 | 33 | 
| 5 | 5 | 25 | 25 | 
| 最高經驗值陣列(DP) | |||
得出最後陣列後,輸出第一層出現的最大值
Code: