[USACO06FEB] Treats for the Cows G/S

时间:2021-04-12 12:03:32   收藏:0   阅读:0

技术图片

 

很显然的区间dp

当我们卖掉一个物品时,可以看为给延后卖的商品都加价

 

$ dp [ i ]  [ j ]  $ 表示卖掉i~j的最大收益

 

#include<bits/stdc++.h>

using namespace std;

int n;
int v[2021];
int dp[2021][2021];
int s[2021];

int main()
{
ios::sync_with_stdio(false);
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>v[i];        
s[i]=v[i]+s[i-1];// 前缀
}    

for(int i=n;i>=1;--i)
    {
        for(int j=i;j<=n;++j)
        {
            dp[i][j]=max(dp[i+1][j],dp[i][j-1])+s[j]-s[i-1];    
        }

    }
    cout<<dp[1][n];
    
    return 0;
}

 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!