POJ 3186Treats for the Cows (区间DP)

时间:2023-03-09 22:13:13
POJ 3186Treats for the Cows (区间DP)

详见代码

 #include <stdio.h>
#include <algorithm>
#include <string.h>
using namespace std;
int a[];
int dp[][];//i到j的最大和是多少
int main() {
// freopen("in.txt","r",stdin);
int t;
while(~scanf("%d",&t)) {
for(int i=; i<=t; i++) {
scanf("%d",&a[i]);
}
memset(dp,,sizeof(dp));
for(int i=t; i>=; i--) {//逆序访问,顺序不行
for(int j=i; j<=t; j++) {
dp[i][j]=max(dp[i+][j]+a[i]*(t+i-j),dp[i][j-]+a[j]*(t+i-j));//状态转移方程
}
}
printf("%d\n",dp[][t]);
}
return ;
}