蒟蒻求助
查看原帖
蒟蒻求助
137723
pencil楼主2021/9/27 08:03
#include<iostream>
#include<string.h>
#include<windows.h>
//#include<bits/stdc++.h>
using namespace  std;
int n,l[1100][1100],i,head[2200],p[2200],ll[1100][1100];
int main(){
	
	int s; 
	cin>>n;
//	memset(ll,0x3f,sizeof(ll));
	for(i=1;i<=n;i++){
		cin>>head[i]; 
//		p[i]=p[i-1]+head[i];
		head[i+n]=head[i];
	}
	for(i=1;i<=n+n;i++)
	p[i]=p[i-1]+head[i];
//	for(i=1;i<=n+n;i++){
//		cout<<p[i]<<" ";
//	}
//	cout<<endl;
//	for(i=1;i<=2*n-1;i++){
//		l[i][i]=0;
//	}
int js,j,k;
	for(i=1;i<=n;i++){
	for(j=1;j<=n*2-i;j++){
		js=i+j;
		ll[j][js]=0x3f3f3f3f;l[j][js]=0;
		for(k=j;k<=js;k++){
			l[j][js]=max(l[j][js],l[j][k]+l[k+1][js]);
			ll[j][js]=min(ll[j][js],ll[j][k]+ll[k+1][js]);
		}
		l[j][js]+=p[js]-p[j];
		ll[j][js]+=p[js]-p[j];
	}
	}
//	for(i=1;i<=n*2;i++){
//		for(j=1;j<=n+n;j++){
//			cout<<ll[i][j]<<"\t";
//		}cout<<endl;
//	}
	int orz=-1;s=0x3f3f3f3f;
	for(i=1;i<=n;i++){
		orz=max(orz,l[i][i+n-1]);
		s=min(s,ll[i][i+n-1]);
	}
	cout<<s<<endl;
	cout<<orz<<endl;
//system("pause");
return 0;
}
2021/9/27 08:03
加载中...