hdu--2084--dp--数塔

#include<iostream> 
#include<cstring>
using namespace std;
const static int N = 101;
int ar[N][N] = {0};
void dp(int,int);
int n;
int main()
{
    int c;cin>>c;
    while(c--)
    {
        memset(ar,0,sizeof(ar));
        cin>>n;
        for(int i=0;i<n;++i){
            for(int j=0;j<i+1;++j){
                cin>>ar[i][j];
            }
        }
        dp(0,0);
        cout<<ar[0][0]<<endl;
    }
    return 0;
}
void dp(int i,int j){
    if(i < n-1)dp(i+1,j);
    for(int j=0;j<i+1;++j){
        ar[i][j] += ar[i+1][j] > ar[i+1][j+1]?ar[i+1][j] : ar[i+1][j+1];
    }
}

 

posted @ 2017-02-14 11:16  朤尧  阅读(215)  评论(0编辑  收藏  举报