其他分享
首页 > 其他分享> > P2858 [USACO06FEB]Treats for the Cows G/S

P2858 [USACO06FEB]Treats for the Cows G/S

作者:互联网

原题链接

考察:区间dp

思路:

       和矩阵取数游戏P1005(本题的加强版)不能说很像,简直就是一模一样.f[l][r]区间表示卖掉[l,r]区间的最大收益,但是我们只能买两边的值,因此分为两类,卖l和卖r

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <algorithm>
 4 #include <cstring>
 5 using namespace std;
 6 const int N = 2010;
 7 int a[N],f[N][N];
 8 int main() 
 9 {
10     int n;
11     scanf("%d",&n);
12     for(int i=1;i<=n;i++) scanf("%d",&a[i]);
13     for(int len=1;len<=n;len++)
14       for(int l=1;l+len-1<=n;l++)
15       {
16            int r = l+len-1;
17            f[l][r] = max(f[l][r],f[l+1][r]+a[l]*(n-r+l));
18            f[l][r] = max(f[l][r],f[l][r-1]+a[r]*(n-r+l));
19       }
20     printf("%d\n",f[1][n]);
21     return 0;
22 }

 

标签:加强版,原题,int,P2858,区间,USACO06FEB,Cows,include
来源: https://www.cnblogs.com/newblg/p/14397660.html