#include<cstdio>
#include<cstring>
#define MAX(x,y) ((x)>(y)?(x):(y))
int dp[120][120];
int d[120][120];
int main()
{
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++)
for(int j=1;j<=i;j++)
scanf("%d",&d[i][j]);
dp[1][1]=d[1][1];
for(int i=2;i<=n;i++)
{
dp[i][1]=dp[i-1][1]+d[i][1];
dp[i][i]=dp[i-1][i-1]+d[i][i];
for(int j=2;j<i;j++)
{
dp[i][j]=MAX(dp[i-1][j-1]+d[i][j],dp[i-1][j]+d[i][j]);
}
}
int res=0;
for(int i=1;i<=n;i++)
res=MAX(res,dp[n][i]);
printf("%d\n",res);
}
poj 1163 dp 走三角形取路径的最大值
最新推荐文章于 2020-04-03 17:58:01 发布