HDU 2084 数塔

动态规划入门

状态转移方程 dp[i][j]=max(dp[i+1][j],dp[i+1][j+1])+v[i][j] 

#include
using namespace std;
int a[120][120],dp[120][120];
int main()
{
    int C,N;
    scanf("%d",&C);
    for(int i=1;i<=C;i++)
    {
        scanf("%d",&N);
        for(int j=1;j<=N;j++)
            for(int k=1;k<=j;k++)
                scanf("%d",&a[j][k]);
        for(int j=N;j>=1;j--)
            for(int k=1;k<=j;k++)
                dp[j][k]=max(dp[j+1][k],dp[j+1][k+1])+a[j][k];
        printf("%d\n",dp[1][1]);
    }
    return 0;
}


你可能感兴趣的:(dp,HDU,动态规划入门)