#include <stdio.h>
#define max(a,b) a>b?a:b;
int main()
{
int n;
scanf("%d",&n);
int High;
int i,j;
int Ta[500][500]={0};
while(n--)
{
scanf("%d",&High);
for(i=1;i<=High;i++)
for(j=1;j<=i;j++)
scanf("%d",&Ta[i][j]);
for(i=High-1;i>=1;i--)
for(j=1;j<=i;j++)
Ta[i][j]+=max(Ta[i+1][j],Ta[i+1][j+1]);
printf("%d\n",Ta[1][1]);
}
return 0;
}
数塔_HDU
最新推荐文章于 2021-04-22 15:19:46 发布
本文介绍了一个使用C语言实现的动态规划算法案例,通过读取输入数据并构造三角形来寻找从顶部到底部的最大路径总和。该程序定义了一个二维数组来存储每个节点到底部的最大路径,并利用动态规划思想自底向上更新最大路径值。

543

被折叠的 条评论
为什么被折叠?



