1. 程式人生 > >codevs 1220 數字三角形

codevs 1220 數字三角形

esc 黃金 b- dia input panel pac strong tput

1220 數字三角形

時間限制: 1 s 空間限制: 128000 KB 題目等級 : 黃金 Gold 題目描述 Description

如圖所示的數字三角形,從頂部出發,在每一結點可以選擇向左走或得向右走,一直走到底層,要求找出一條路徑,使路徑上的值最大。

技術分享 輸入描述 Input Description

第一行是數塔層數N(1<=N<=100)。

第二行起,按數塔圖形,有一個或多個的整數,表示該層節點的值,共有N行。

輸出描述 Output Description

輸出最大值。

樣例輸入 Sample Input

5

13

11 8

12 7 26

6 14 15 8

12 7 13 24 11

樣例輸出 Sample Output

86

數據範圍及提示 Data Size & Hint 數字三角形 連接節點的下兩個節點取 最大值+自身節點數
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 using namespace std;
 5
const int N=500; 6 int dp[N][N]; 7 int sd[N][N]; 8 int main() 9 { 10 int n; 11 cin>>n; 12 for(int i=1;i<=n;i++) 13 { 14 for(int j=1;j<=i;j++) 15 { 16 scanf("%d",&dp[i][j]); 17 } 18 } 19 for(int i=n-1;i>=1;i--)
20 { 21 for(int j=1;j<=i;j++) 22 dp[i][j]=max(dp[i+1][j],dp[i+1][j+1])+dp[i][j]; 23 } 24 cout<<dp[1][1]; 25 return 0; 26 }

codevs 1220 數字三角形