2084 数塔

来源:互联网 发布:手机时间安排软件 编辑:程序博客网 时间:2024/06/11 19:49
/*http://acm.hdu.edu.cn/showproblem.php?pid=2084动态规划: 使用二维数组来表示 数字从底开始网上推,在最底的那一行,每个位置的最大值就是那个位置的值倒数第二行,每个位置的最大值 是 那个位置的 值 加上 最后一行 相邻的 位置 中 最大的那个值,....一直到第一行,则第一行的最大值就是第一行的值 加上 第二行的 最大值 */#include <stdio.h>#include <string.h>int num[110][110];int main(){int cas;scanf("%d",&cas);while(cas--){memset(num,0,sizeof(num));int n;scanf("%d",&n);int i;for(i=1; i<=n; i++){int j;for(j=0; j<i; j++)scanf("%d",&num[i][j]);}for(i=n; i>0; i--){int k;for(k=0; k<i; k++){if(num[i+1][k] > num[i+1][k+1])num[i][k] += num[i+1][k];elsenum[i][k] += num[i+1][k+1];}}printf("%d\n",num[1][0]);}return 0;}

原创粉丝点击