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;
}
浙公网安备 33010602011771号