codevs 1220 數字三角形
阿新 • • 發佈:2017-05-06
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 Input5
13
11 8
12 7 26
6 14 15 8
12 7 13 24 11
樣例輸出 Sample Output86
數據範圍及提示 Data Size & Hint 數字三角形 連接節點的下兩個節點取 最大值+自身節點數1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 using namespace std; 5const 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 數字三角形