最小值爆0
查看原帖
最小值爆0
292069
洋本羊楼主2021/6/5 17:21
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
int n,xiao=0x7ffffff,da,a[205],f[1000][1000],ff[1000][1000],sum[1000];
using namespace std;
int main()
{
	cin>>n;	
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
		a[i+n]=a[i]; 
	}
	for(int i=1;i<=2*n;i++)
	{
		sum[i]=sum[i-1]+a[i];
	}
	for(int i=1;i<=2*n;i++)
	{
		f[i][i]=999999999;
		ff[i][i]=0;
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=2*n-i+1;j++)
		{
			int z=i+j-1;
			for(int k=j;k<z;k++)
			{
				f[j][z]=min(f[j][z],f[j][k]+f[k+1][z]+sum[z]-sum[j-1]);
				ff[j][z]=max(ff[j][z],ff[j][k]+ff[k+1][z]+sum[z]-sum[j-1]);
			}
		}
	}
	for(int i=1;i<=n;i++)
	{
		xiao=min(xiao,f[i][i+n-1]);
		da=max(da,ff[i][i+n-1]);
	}
	cout<<xiao<<endl<<da;
	return 0;
}
2021/6/5 17:21
加载中...