HDU - 树塔 : 入门dp

 

http://acm.hdu.edu.cn/showproblem.php?pid=2084

#include <stdio.h>
#include <cstring>
#include <algorithm>
#include <vector>
#include <map>
#include <assert.h>
#include <set>
#include <cmath>
#include <queue>
#include <cstdlib>
#include <iostream>
#include <bitset>
#define pii pair<int,int>
#define fi first
#define se second
#define pb push_back
using namespace std;
typedef long long ll;
const int mxn = 1e2+5;
int n,m,k,t,dp[mxn][mxn],a[mxn];
int main()
{
    cin>>t;
    while(t--)
    {
        cin>>n;
        for(int i=1;i<=n;i++)
            for(int j=1;j<=i;j++)
                cin>>dp[i][j];
        memset(a,0,sizeof(a));
        for(int i=1;i<=n;i++)
        {
            for(int j=n;j>=1;j--)
            {
                a[j] = max( a[j] ,a[j-1] ) + dp[i][j] ;
            }
        }
        cout<<*max_element(a+1,a+1+n)<<endl;
    }
    return 0 ;
}

 

posted @ 2020-02-01 14:30  __MEET  阅读(130)  评论(0编辑  收藏  举报