#include<stdio.h>
int max(int x,int y)
{
if(x>y)return x;
else return y;
}
int mian(){
int f[100][100],dp[100][100],i,n,j,k;
scanf("%d",&n);
for(i=0;i<n;i++)
{
for(j=0;j<=i;j++)
scanf("%d",&f[i][j]);
}
dp[0][0]=dp[0][1]=0;
for(i=1;i<=n;i++)
{
for(j=1;j<=i;j++)
{
dp[i][j]=max(dp[i-1][j],dp[i-1][j-1])+f[i][j];
}
}
for(j=k=1;j<=n;j++)
if(dp[n][k]<dp[n][j])k=j;
printf("%d\n",dp[i][k]);
}
动态规划
最新推荐文章于 2024-01-20 17:00:00 发布