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
",f[1][1]);
    }
    return 0;
}
原文地址:https://www.cnblogs.com/forever97/p/3529283.html