dp專題訓練 數字三角形(列印路徑)

2021-08-22 06:02:33 字數 997 閱讀 5239

該題也沒有要求我們列印出最大三角形的路徑,在此我們做一定的拓展!

方案同求最長上公升子串行,定義乙個結構體,該結構體包含三個數值,一為最大的路徑大小,以及軌跡中上一點的x座標和y座標。最初的點座標定義為(-1,-1).運用遞迴的結構列印,當遇到座標點為(-1,-1)時返回走向上一層。

描述

7

3 8

8 1 0

2 7 4 4

4 5 2 6 5

(圖1)

圖1給出了乙個數字三角形。從三角形的頂部到底部有很多條不同的路徑。對於每條路徑,把路徑上面的數加起來可以得到乙個和,你的任務就是找到最大的和。

注意:路徑上的每一步只能從乙個數走到下一層上和它最近的左邊的那個數或者右邊的那個數。

輸入輸入的是一行是乙個整數n (1 < n <= 100),給出三角形的行數。下面的n行給出數字三角形。數字三角形上的數的範圍都在0和100之間。

輸出輸出最大的和。

樣例輸入

5

73 8

8 1 0

2 7 4 4

4 5 2 6 5

樣例輸出

30
#includestruct ********dp[101][101];

int trival[101][101]; //記錄三角形的值。

int max(int a,int b)

void print(int a,int b) //運用遞迴列印出最大三角形的軌跡 。

else }

int main()

} for(int i=1;i<=n;i++)

for(int i=n-1;i>=1;i--)

else

} }printf("%d\n",dp[1][1].maxval);

print(1,1);

return 0;

}

數字三角形 DP

數字三角形 時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 問題描述 小hi和小ho在經歷了螃蟹先生的任務之後被獎勵了一次出國旅遊的機會,於是他們來到了大洋彼岸的美國。美國人民的生活非常有意思,經常會有形形色色 奇奇怪怪的活動舉辦,這不,小hi和小ho剛剛下飛機,就趕上了當...

(dp)數字三角形

數字三角形問題。有乙個由非負整數組成的三角形,第一行只有乙個數,除了最下行 之外每個數的左下方和右下方各有乙個數 從第一行的數開始,每次可以往左下或右下走一格,直到走到最下行,把沿途經過的數 全部加起來。如何走才能使得這個和盡量大?具體實現 中的d我們用maxsum表示 最初的位置我們用d存 1.把...

數字三角形 dp

給定乙個如下圖所示的數字三角形,從頂部出發,在每一結點可以選擇移動至其左下方的結點或移動至其右下方的結點,一直走到底層,要求找出一條路徑,使路徑上的數字的和最大。73 8 8 1 0 2 7 4 4 4 5 2 6 5 輸入格式 第一行包含整數n,表示數字三角形的層數。接下來n行,每行包含若干整數,...