【杭电】[2084]数塔

从下往上找
记录到当前的最大的数字和

#include<stdio.h>
int max(int a,int b) {
    return a>b?a:b;
}
int main() {
    int T;
    scanf("%d",&T);
    while(T--) {
        int a[120][120]= {0};
        int n;
        scanf("%d",&n);
        for(int i=0; i<n; i++)
            for(int j=0; j<=i; j++)
                scanf("%d",&a[i][j]);
        for(int i=n-1; i>=0; i--)
            for(int j=i; j>=0; j--)
                a[i-1][j]=max(a[i-1][j]+a[i][j],a[i-1][j]+a[i][j+1]);
        printf("%d
",a[0][0]);
    }
    return 0;
}

题目地址:【杭电】[2084]数塔