給定乙個如下圖所示的數字三角形,從頂部出發,在每一結點可以選擇移動至其左下方的結點或移動至其右下方的結點,一直走到底層,要求找出一條路徑,使路徑上的數字的和最大。
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
輸入格式
第一行包含整數 n,表示數字三角形的層數。
接下來 n 行,每行包含若干整數,其中第 i 行表示數字三角形第 i 層包含的整數。
輸出格式
輸出乙個整數,表示最大的路徑數字和。
資料範圍
1≤n≤500,
−10000≤三角形中的整數≤10000
輸入樣例:
5
73 8
8 1 0
2 7 4 4
4 5 2 6 5
輸出樣例:30
方法一:
狀態轉移公式:f(i, j) = max(f(i+1, j), f(i+1, j+1)) + wij
f(i, j)表示第 i 層第 j 個元素繼續往下走的最優解,wij為該元素的值
#include using namespace std;
const int n = 510;
int n, a[n][n];
int main()
}for (int i = n; i >= 1; --i)
}printf("%d", a[1][1]);
}
AcWing898 數字三角形
1.題目描述 給定乙個如下圖所示的數字三角形,從頂部出發,在每一結點可以選擇移動至其左下方的結點或移動至其右下方的結點,一直走到底層,要求找出一條路徑,使路徑上的數字的和最大。7 3 8 8 1 0 2 7 4 4 4 5 2 6 5輸入格式 第一行包含整數n,表示數字三角形的層數。接下來n行,每行...
acwing 898數字三角形(區間dp)
給定乙個如下圖所示的數字三角形,從頂部出發,在每一結點可以選擇移動至其左下方的結點或移動至其右下方的結點,一直走到底層,要求找出一條路徑,使路徑上的數字的和最大。7 3 8 8 1 0 2 7 4 4 4 5 2 6 5輸入格式 第一行包含整數n,表示數字三角形的層數。接下來n行,每行包含若干整數,...
Day3 開啟 acwing 898 數字三角形
題目 給定乙個如下圖所示的數字三角形,從頂部出發,在每一結點可以選擇移動至其左下方的結點或移動至其右下方的結點,一直走到底層,要求找出一條路徑,使路徑上的數字的和最大。7 3 8 8 1 0 2 7 4 4 4 5 2 6 5輸入格式 第一行包含整數n,表示數字三角形的層數。接下來n行,每行包含若干...