斯波吉对待奶牛DP得到错误的答案

spoj treat for cows DP getting wrong answer?

本文关键字:错误 答案 DP      更新时间:2023-10-16

为什么我得到错误的答案。我使用了DP并自下而上填满了桌子。

http://www.spoj.com/problems/TRT/

for(int i=0;i<n;i++)
    {
        dp[i][i]=n*a[i];
    }
    for(int i=n-2;i>=0;i--)
    {
        for(int j=i+1;j<n;j++)
        {
            dp[i][j]=max((i+1)*a[i]+dp[i+1][j],dp[i][j-1]+(i+1)*a[j]);//(i+1) is the age
        }
    }
    printf("%dn",dp[0][n-1]);

年龄不会是 i+1。 它将是 n+i-j。

dp[i][j] = max(  (n+i-j)*a[i]+dp[i+1][j],  dp[i][j-1] + (n+i-j)*a[j] );