【HDOJ】2084 数塔

大水题,不过是经典DP,最基本的DP了。

#include <stdio.h>

#define MAXNUM 105

int val[MAXNUM][MAXNUM];
int sums[MAXNUM][MAXNUM];

int mymax(int a, int b) {
    return a>b ? a:b;
}

int main() {
    int i, j, tmp;
    int height, case_n;

    scanf("%d", &case_n);

    while (case_n--) {
        scanf("%d", &height);

        memset(sums, 0, sizeof(sums));
        for (i=1; i<=height; ++i)
            for (j=1; j<=i; ++j) {
                scanf("%d", &val[i][j]);
                sums[i][j] = val[i][j] + mymax(sums[i-1][j], sums[i-1][j-1]);
            }

        tmp = 0;
        for (j=1; j<=height; ++j)
            if (sums[height][j] > tmp)
                tmp = sums[height][j];

        printf("%d\n", tmp);
    }

    return 0;
}

 

posted on 2014-03-07 18:36  Bombe  阅读(130)  评论(0)    收藏  举报

导航