时间:2016-03-29 15:26:04 星期二
题目编号:[2016-03-29][POJ][3186][Treats for the Cows]
#include <cstdio>#include <algorithm>using namespace std;const int maxn = 2000 + 10;int dp[maxn][maxn];int a[maxn];int main(){ int n; scanf("%d",&n); for(int i = 1;i <= n ; ++i){ scanf("%d",&a[i]); } for(int i = 1;i <= n ; ++i){ dp[i][i] = a[i] * n; } for(int i = 2;i <= n ; ++i){ for(int l = 1;l + i - 1 <= n ; ++l){ int r = l + i - 1,t = n - i + 1; dp[l][r] = max(dp[l + 1][r] + a[l] * t,dp[l][r- 1] + a[r] * t); } } printf("%d\n",dp[1][n]); return 0;}