首页 > 其他 > 详细

POJ 3186

时间:2021-03-08 14:02:21      阅读:28      评论:0      收藏:0      [点我收藏+]

水题,思路很简单,不过这里有一个另一思路,也蛮有启发性的(关于状态定义)

#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <cstdio>
#include <cstring>
using namespace std;

const int maxn = 2005;

int v[maxn];
int dp[maxn][maxn];
int main(int argc, char const *argv[])
{
	int n;
	scanf("%d", &n);

	for (int i= 1; i<= n; ++i){
		scanf("%d", v+i);
	}

	memset(dp, 0, sizeof(dp));

	for (int k= 0; k< n; ++k){
		int j= 1+k;
		for (int i= 1; j<= n; ++i, ++j){
			dp[i][j]= max(dp[i+1][j]+v[i]*(n-k), dp[i][j-1]+v[j]*(n-k));
		}
	}

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

POJ 3186

原文:https://www.cnblogs.com/Idi0t-N3/p/14499080.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!