poj 3186

简单dp

代码:

#include<iostream>
#include<fstream>

using namespace std;


int a[2001];
int dp[2001][2001];
int n;

void read(){
//	ifstream cin("in.txt");
	int i,j,k;
	cin>>n;
	for(i=1;i<=n;i++)
	{
		cin>>j;
		a[i]=a[i-1]+j;
	}
	for(i=1;i<=n;i++)
		dp[i][i]=a[i]-a[i-1];
	for(k=1;k<=n-1;k++)
		for(i=1;i+k<=n;i++)
		{
			j=i+k;
			dp[i][j]=max(dp[i+1][j],dp[i][j-1])+a[j]-a[i-1];
		}
	cout<<dp[1][n]<<endl;

			

}

int main(){
	read();
	return 0;
}

posted on 2011-04-30 12:38  宇宙吾心  阅读(305)  评论(0)    收藏  举报

导航