51 nod 1002 数塔取数问题

#include <iostream>
using namespace std;
int dp[600][600];

int main()
{
    int n;
    cin>>n;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=i;j++){
            cin>>dp[i][j];
        }
    }
    for(int i=n;i>=1;i--){
        for(int j=1;j<=i;j++){
            dp[i-1][j]+=max(dp[i][j],dp[i][j+1]);
        }
    }
    cout<<dp[1][1]<<endl;
    return 0;
}
View Code

从下往上开始加。

posted @ 2018-05-09 22:41  凌乱风中  阅读(72)  评论(0编辑  收藏  举报