这个O(n^4)的代码。。。。。
查看原帖
这个O(n^4)的代码。。。。。
230875
Surge_of_Force楼主2021/7/28 14:55
#include<bits/stdc++.h>
using namespace std;
int f1[210][210][210],d[210],x,f2[210][210][210];
int main()
{
	int n;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		int xx;
		cin>>xx;
		x+=xx;
		d[i]=x;
	}
	for(int i=1;i<=n;i++)
	{
		d[n+i]=d[i];
	}
	memset(f1,127/3,sizeof(f1));
	memset(f2,-127/3,sizeof(f2));
	for(int p=1;p<=n;p++)
	    for(int i=1;i<=2*n;i++)
	        f1[i][i][p]=f2[i][i][p]=0;
	for(int p=1;p<=n;p++)
	    for(int i=2*n-1-p;i>=n-1-p;i--) 
	        for(int j=i;j<=n*2-p;j++) 
	            for(int k=i;k<j;k++)
	        {
	        	f1[i][j][p]=min(f1[i][j][p],f1[i][k][p]+f1[k+1][j][p]+d[j]-d[i-1]);
	        	f2[i][j][p]=max(f2[i][j][p],f2[i][k][p]+f2[k+1][j][p]+d[j]-d[i-1]);
			}	
	int minx=0xfffffff,maxn=-1;
	for(int i=1;i<=n;i++)
	{
	
		minx=min(minx,f1[1][n][i]);
		maxn=max(maxn,f2[1][n][i]);
	}
	cout<<minx<<endl<<maxn;
	return 0;		     
}
2021/7/28 14:55
加载中...