HDU 2084 数塔

题解:经典数塔问题

#include <cstdio>

#include <iostream>

using namespace std;

#define rep(i,m,n) for(int i=m;i<=n;i++)

int f[100][100];



int max(int a,int b)

{return(a>b?a:b);}



int main()

{

    int t;

    scanf("%d",&t);

    while(t--)

    {

        memset(f,0,sizeof(f));

        int n;

        scanf("%d",&n);

        rep(i,1,n)rep(j,1,i)scanf("%d",&f[i][j]);

        for(int i=n-1; i; i--)rep(j,1,i)

        f[i][j]=f[i][j]+max(f[i+1][j],f[i+1][j+1]);

        printf("%d\n",f[1][1]);

    }

    return 0;

}

 

你可能感兴趣的:(HDU)