6 數字三角形

2022-09-16 14:36:10 字數 1228 閱讀 6409

先來解釋一下什麼是線性dp

在求狀態轉移方程時,有明顯的線性求取順序

比如揹包問題

這道題目我們先給數字編號

分析

dp問題的時間複雜度如何分析

一般是狀態數量乘以轉移的計算量(就是算每個狀態需要的計算量)

本題大致就是500 * 500

1 #include 2

using

namespace

std;

3const

int n = 510, inf =1e9;

4int a[n][n]; //

儲存三角形中的每乙個點

5int

dp[n][n];

6int

main() 13}

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

19 dp[1][1] = a[1][1]; //

邊界 20

for (int i = 2; i <= n; i++) 24}

25int res = -inf;

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

29 cout << res <

30return0;

31 }

數字三角形

題目描述 示出了乙個數字三角形。請編乙個程式計算從頂至底的某處的一條路 徑,使該路徑所經過的數字的總和最大。每一步可沿左斜線向下或右斜線向下走 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 ...