题目:
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1002
此题用到动态规划 从底部向上累加
#include<iostream>
using namespace std;
const int MAX = 501;
int dp[MAX][MAX];
int A[MAX][MAX];
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
for(int j=1;j<=i;j++){
cin>>A[i][j];
if(i==n){
dp[i][j]=A[i][j];
}
}
}
for(int i=n-1;i>=1;i--){
for(int j=1;j<=i;j++){
dp[i][j]=max(dp[i+1][j],dp[i+1][j+1])+A[i][j];
}
}
cout<<dp[1][1];
}