數字三角形問題 動態規劃

2021-10-11 10:59:59 字數 1171 閱讀 9048

給定乙個由n行數字組成的數字三角形如下圖所示。試設計乙個演算法,計算出從三角形的頂至底的一條路徑,使該路徑經過的數字總和最大。

對於給定的由n行數字組成的數字三角形,計算從三角形的頂至底的路徑經過的數字和的最大值。

input

輸入資料的第1行是數字三角形的行數n,1≤n≤100。接下來n行是數字三角形各行中的數字。所有數字在0…99之間。

output

輸出資料只有乙個整數,表示計算出的最大值。

注:如圖所示,這是樣例的答案。

我們首先想到的可能是從頂到底遞迴求解。從點(i , j)到下一層有兩條路:(1)到達點(i+1, j);(2)到達點(i+1, j+1)。選點的依據就是比較下一層的這兩個點,看那個點上的數字大。重複操作,直至到達最底層。現在,我們反過來思考,從底到頂遞迴求解,只要修改一下for迴圈的條件即可。

#include

using

namespace std;

const

int max=

101;

int n;

int dp[max]

[max]

;//dp[i][j]表示點(i,j)的上的數字

intmaxsum

(int n)

//maxsum(n)表示層數為 n 的三角形,從頂到底的數字總和的最大值

}return dp[1]

[1];

//從底到點(1,1)的最大數字和,即為所求值

動態規劃 數字三角形問題

數字三角形問題 time limit 1000ms memory limit 65536kb problem description 給定乙個由n行數字組成的數字三角形如下圖所示。試設計乙個演算法,計算出從三角形的頂至底的一條路徑,使該路徑經過的數字總和最大。對於給定的由n行數字組成的數字三角形,計...

動態規劃 數字三角形問題

有乙個由非負整數組成的三角形,第一行只有乙個數,除了最下行之外每個數的左下方和右下方各有乙個數.3 24 10 1 4 3 2 20 從第一行的數開始,每次可以往左下或右下走一格,直到走到最下行,把沿途經過的數全部加起來,如何走才能使得這個和盡量大?輸入 三角形的行數n,數字三角形的各個數 從上到下...

動態規劃 數字三角形問題

problem description 給定乙個由n行數字組成的數字三角形如下圖所示。試設計乙個演算法,計算出從三角形的頂至底的一條路徑,使該路徑經過的數字總和最大。對於給定的由n行數字組成的數字三角形,計算從三角形的頂至底的路徑經過的數字和的最大值。input 輸入資料的第1行是數字三角形的行數n...