數塔問題是典型的dp問題之一,關鍵點:建立狀態轉移方程,這也是dp問題常見的一種思考方式(我不知道是不是所有的dp都是這種思考方式,看過的一些資料裡面,建立狀態轉移方程很普遍,可能是自己碰到的面還不夠廣吧), 而這裡還有乙個更為重要的思考點就是從哪兒開始建立?
求經過結點數字之和最大值的問題,用二維陣列來表示其中結構也是dp裡面常用的方法,我覺的用這種方法可能更易於去建立某種關係:非線性—>線性. 因為我覺的dp的思為方式跨度再大,它也的是採用線性關係來讓許多看是間斷的,不連續的點變成連續的,線性的。數塔問題裡面採用了倒序相加的思想,map[i][j]+=max(map[i+1][j] , map[i+1][j+1]).它沒有從最後乙個開始,而是從倒數第二行開始,這不得不讓人佩服。然後,求出每一行和下一行的和的最大值,體現了很強的動態性,依次類推,最後map[0][0]就是所求的解了。
當然這種思考方式在目前看來是很不錯的,也很適合我們借鑑和學習。
但方法再好,也不見得是最好的(我猜測的~~),只借鑑學習是不夠的,我覺的最重要的是當你在思考某個問題的時候,這個問題裡面有你自己獨特的見解有幾分,這很重要,因為多角度去思考問題更能拓展解決問題的能力。
我的問題是,如果採用正序去求解,結果會又如何呢? 。。。。。。。。。
問題 A 數塔
時間限制 1 sec 記憶體限制 128 mb 提交 1311 解決 623 提交 狀態 討論版 給定乙個數塔,如下圖所示。在此數塔中,從頂部出發,在每一節點可以選擇走左下或右下,一直走到底層。請找出一條路徑,使路徑上的數值和最大。9 12 15 10 6 8 2 18 9 5 19 7 10 4 ...
數塔取數問題
1002 數塔取數問題 乙個高度為n的由正整數組成的三角形,從上走到下,求經過的數字和的最大值。每次只能走到下一層相鄰的數上,例如從第3層的6向下走,只能走到第4層的2或9上。5 8 4 3 6 9 7 2 9 5 例子中的最優方案是 5 8 6 9 28 input 第1行 n,n為數塔的高度。2...
數塔取數問題
乙個高度為n的由正整數組成的三角形,從上走到下,求經過的數字和的最大值。每次只能走到下一層相鄰的數上,例如從第3層的6向下走,只能走到第4層的2或9上。5 8 43 6 9 7 2 9 5 例子中的最優方案是 5 8 6 9 28 input 第1行 n,n為數塔的高度。2 n 500 第2 n 1...