POJ 3186 Treats for the Cows
2013-05-13 10:47
274 查看
题意在题目描述里面已经给的很详细了,用dp[i][j]表示从i~j的区间选择所能获得的最大值。
状态转移方程也不难:
dp[i][j] = max(dp[i+1][j] + v[i]*a, dp[i][j-1] + v[i]*a);
a是指v[i]的age,显然 a = n - j + i .
状态转移方程也不难:
dp[i][j] = max(dp[i+1][j] + v[i]*a, dp[i][j-1] + v[i]*a);
a是指v[i]的age,显然 a = n - j + i .
#include<algorithm> #include<iostream> #include<cstdio> #include<cstring> using namespace std; const int maxn = 2020; int dp[maxn][maxn], n, v[maxn], a; int main() { while(~scanf("%d", &n)) { for(int i=1; i<=n; i++) scanf("%d", &v[i]); memset(dp, 0, sizeof(dp)); for(int i=n-1; i>=1; i--) for(int j=i; j<=n; j++) { dp[i][j] = max(dp[i][j], dp[i+1][j] + v[i]*(n-j+i)); dp[i][j] = max(dp[i][j], dp[i][j-1] + v[j]*(n-j+i)); } printf("%d\n", dp[1] ); } }
相关文章推荐
- poj 3186 Treats for the Cows(区间dp)
- 动态规划训练20 [Treats for the Cows POJ - 3186 ]
- poj 3186 Treats for the Cows(DP)
- O - Treats for the Cows POJ - 3186【动态规划】
- POJ-3186 Treats for the Cows( DP )
- poj(3186)Treats for the Cows
- poj 3186 Treats for the Cows (区间DP)
- POJ 3186 Treats for the Cows【区间DP+思维】
- POJ-3186-Treats for the Cows
- POJ 3186 Treats for the Cows (区间DP)
- dp基础8-- O - Treats for the Cows POJ - 3186
- POJ 3186 Treats for the Cows——区间DP
- 【dp】POJ - 3186 Treats for the Cows
- poj 3186 Treats for the Cows 动态规划
- POJ 3186 Treats for the Cows 笔记
- poj 3186 && bzoj 1652: [Usaco2006 Feb]Treats for the Cows(DP)
- POJ 3186 Treats for the Cows
- POJ 3186 Treats for the Cows(区间DP)
- 【区间dp】POJ 3186 Treats for the Cows
- POJ-3186-Treats for the Cows