Code
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N=105;
int n,a[N],dp2[N][N];
int dp[N][N],sum[N*2];
signed main() {
// ios::sync_with_stdio(false);
// cin.tie(NULL); cout.tie(NULL);
cin>>n;
for(int i=1;i<=n;++i) {
cin>>a[i];
a[n+i]=a[i];
sum[i]=sum[i-1]+a[i];
}
for(int i=n+1;i<=n*2;++i)
sum[i]=sum[i-1]+a[i];
/*for(int i=1;i<=n*2;++i)
cout<<a[i]<<" ";
cout<<endl;
for(int i=1;i<=n*2;++i)
cout<<sum[i]<<" ";
cout<<endl;*/
for(int len=1;len<=n;++len)
for(int i=1;i+len<=n*2;++i) {
int j=i+len;
dp2[i][j]=1000000000;
for(int k=i;k<j;++k)
dp[i][j]=max(dp[i][j],dp[i][k]+dp[k+1][j]+sum[j]-sum[i-1]),
dp2[i][j]=min(dp2[i][j],dp2[i][k]+dp2[k+1][j]+sum[j]-sum[i-1]);
}
int ans,ans2=INT_MAX;
for(int i=1;i<=n;++i)
ans=max(ans,dp[i][n+i-1]),
ans2=min(ans2,dp2[i][n+i-1]);
cout<<ans2<<endl<<ans;
return 0;
}
LOOK!我中间的注释掉的那一行,用来DUBUG,
我加上它,最后的答案就对了?!
删掉它——错了, 最大值错了
有 dalao 知道怎么改吗?
(在线等