蒟蒻求助
查看原帖
蒟蒻求助
555735
huboxiangsb楼主2023/4/22 21:34
#include <bits/stdc++.h>
using namespace std;
const int L=205;
int a[L],f1[L][L],f2[L][L],n,m,s[L],en,maxx;
int minn=114514191*2;
int main()
{
	cin >> n;
	m=2*n;
	for (int i=1;i<=n;i++) cin >> a[i];
	for (int i=n+1;i<=m;i++) a[i]=a[i-n];
	for (int i=1;i<=m;i++)
	{
		f1[i][i]=f2[i][i]=0; 
		s[i]=s[i-1]+a[i];
	} 
	for (int i=1;i<=n;i++)
	{
		for (int j=1;i+j<=m;j++)
		{
			en=i+j-1;
			f2[j][en]=114514191*2;
			for (int k=j;k<en;k++)
			{
				f1[j][en]=max(f1[j][en],f1[j][k]+f1[k+1][en]+s[en]-s[j-1]);
				f2[j][en]=min(f2[j][en],f2[j][k]+f2[k+1][en]+s[en]-s[j-1]);
			}
		}
	}
	for (int i=1;i<=n;i++)
	{
		maxx=max(maxx,f1[i][i+n-1]);
		minn=min(minn,f2[i][i+n-1]);
	}
	cout << minn << endl << maxx;
	return 0;
 } 
2023/4/22 21:34
加载中...