题目链接:http://poj.org/problem?id=1163
解题思路:核心为 a[i-1][j]=a[i-1][j]+max(a[i][j],a[i][j+1]), 其中 1<i≤n, 1≤j<i. 答案为 a[1][1].
1 #include<iostream> 2 using namespace std; 3 4 int main(){ 5 int n,i,j,a[101][101]; 6 cin>>n; 7 for(i=1;i<=n;i++){ 8 for(j=1;j<=i;j++) cin>>a[i][j]; 9 } 10 for(i=n;i>1;i--){ 11 for(j=1;j<i;j++){ 12 a[i-1][j]+=(a[i][j]>a[i][j+1]? a[i][j]:a[i][j+1]); 13 } 14 } 15 cout<<a[1][1]<<endl; 16 return 0; 17 }