#include <stdio.h>
#include <stdlib.h>
#define MAX 110
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
int a[MAX][MAX];
int i,j,k;
for(i=0;i<n;i++)
for(j=0;j<i+1;j++)
scanf("%d",&a[i][j]);
for(i=n-2;i>=0;i--)
for(j=0;j<=i;j++)
a[i][j]=a[i][j]+(a[i+1][j]>a[i+1][j+1]?a[i+1][j]:a[i+1][j+1]);
printf("%d\n",a[0][0]);
}
return 0;
}
【DP入门】The Triangle
最新推荐文章于 2022-03-20 12:30:00 发布
本博客介绍了一个算法,用于计算数字三角形中从顶部到底部路径的最大和。通过逐层累加相邻节点的较大值,最终得到顶部到任一底部节点的最大路径和。
2万+

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



