【动态规划】雷涛的小猫

【动态规划】雷涛的小猫
题目来源:http://exam.upc.edu.cn/problem.php?id=9367
中文题,找状态转移方程
{{{{{{{{{{{{{{{ dp[ i ] [ j + 1] + a [ i ] [ j ]
dp[ i ][ j ] = { b[ j+da ] + a[ i ] [ j ]
i代表树,j代表高度,用了读入挂
代码:

#include 
using namespace std;
int a[2010][2010],dp[2010][2010],b[2010];
int read()
{
     char ch=getchar();
     while(!isdigit(ch))
        ch=getchar();
     int x=0;
     while(isdigit(ch))
     {
         x=x*10+ch-'0';
         ch=getchar();
     }
     return x;
}
int main()
{
    int n,h,da;
     n=read();h=read();da=read();
    for(int i=1;i<=n;i++)//shu
    {
        int x;
        x=read();
        for(int j=0;j0;i--)
    {
        for(int j=1;j<=n;j++)
        {
            dp[j][i]=max(dp[j][i+1]+a[j][i],b[i+da]+a[j][i]);
            b[i]=max(b[i],dp[j][i]);
        }
    }
    printf("%d\n",b[1]);
    return 0;
}

自己水了10多遍,不及大佬说的2分钟!!!

你可能感兴趣的:(dp)