#include<stdio.h>
long dp[110][110];
int n;
void input()
{
int i, j;
for(i = 1; i<=n; i++)
{
for(j = 1; j <= i; j++)
{
scanf("%ld", &dp[i][j]);
}
}
}
long Max(long x, long y)
{
if(x > y) return x;
else return y;
}
void DP()
{
int i, j;
for(i = n; i>= 1; i--)
{
for(j = 1; j <= i; j++)
{
if(i == n)dp[i][j] = dp[i][j];//其实这一步没用只是用于理解
else
{
dp[i][j]+= Max(dp[i+1][j], dp[i+1][j+1]);
}
}
}
}
int main()
{
scanf("%d", &n);
input();
DP();
printf("%ld", dp[1][1]);
return 0;
}
数字三角形问题SDUT————简单dp
最新推荐文章于 2020-06-12 14:39:57 发布