HDU2084 数塔

来源:互联网 发布:svn server linux下载 编辑:程序博客网 时间:2024/04/30 07:31
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn = 105;int n;int d[maxn][maxn];void dp(){    for(int i = 1; i <= n; i++) {        for(int j = 1; j <= i; j++) {            if(j==1) d[i][j] = d[i][j] + d[i-1][j];            else if(i==j && i!=1) d[i][j] = d[i][j] + d[i-1][j-1];            else {                d[i][j] = d[i][j] + max(d[i-1][j], d[i-1][j-1]);            }        }    }    int ans = -1;    for(int i = 1; i <= n; i++) {        ans = max(ans, d[n][i]);    }    printf("%d\n", ans);}int main(){    int T;    scanf("%d", &T);    while(T--) {        scanf("%d", &n);        memset(d, 0, sizeof(d));        for(int i = 1; i <= n; i++) {            for(int j = 1; j <= i; j++) {                scanf("%d", &d[i][j]);            }        }        dp();    }    return 0;}
0 0