屬於線性dp的一種。
題目大意:
給定乙個如下圖所示的數字三角形,從頂部出發,在每一結點可以選擇移動至其左下方的結點或移動至其右下方的結點,一直走到底層,要求找出一條路徑,使路徑上的數字的和最大。
738
8102
7444
5265
輸入格式
第一行包含整數n
,表示數字三角形的層數。
接下來n行,每行包含若干整數,其中第i
行表示數字三角形第i
層包含的整數。
輸出格式
輸出乙個整數,表示最大的路徑數字和。
資料範圍
1≤n≤500
,
−10000
≤ 三角形中的整數 ≤10000
輸入樣例:
573
8810
2744
4526
5
輸出樣例:
30
基本思想:按自底向上的思想來求解,首先開乙個二維陣列,存入資料,然後從倒數第二行開始依次往上,每次都加上它下面兩個數中的最大值,最後f[1][1]
就是最終的答案。
**實現:
#include
#include
using
namespace std;
const
int maxn =
510;
int n, f[maxn]
[maxn]
;//f[i][j]先記錄數,然後依次更新為從底向上的路徑的最大數之和
intmain()
}for
(int i = n-
1; i >=
1; i--)}
printf
("%d"
, f[1]
[1])
;return0;
}
數字三角形
題目描述 示出了乙個數字三角形。請編乙個程式計算從頂至底的某處的一條路 徑,使該路徑所經過的數字的總和最大。每一步可沿左斜線向下或右斜線向下走 1 三角形行數 25 三角形中的數字為整數 1000 輸入第一行為n,表示有n行 後面n行表示三角形每條路的路徑權 輸出路徑所經過的數字的總和最大的答案 樣...
數字三角形
description 有如下所示的數塔,要求從頂層走到底層,若每一步只能走到相鄰的結點,則經過的結點的數字之和最大是多少?input 輸入資料首先包括乙個整數c,表示測試例項的個數,每個測試例項的第一行是乙個整數n 1 n 100 表示數塔的高度,接下來用n行數字表示數塔,其中第i行有個i個整數,...
數字三角形
3 8 8 1 0 2 7 4 4 4 5 2 6 5 上圖給出了乙個數字三角形。從三角形的頂部到底部有很多條不同的路徑。對於每條路徑,把路徑上面的數加起來可以得到乙個和,和最大的路徑稱為最佳路徑。你的任務就是求出最佳路徑上的數字之和。input 1 5 7 3 8 8 1 0 2 7 4 4 4 ...