WA三个点qaq...蒟若求助
查看原帖
WA三个点qaq...蒟若求助
67841
yqkkkkk楼主2020/9/28 16:49
#include<bits/stdc++.h>
using namespace std;
const int N=110;
int n;
int minn=0x7ffffff;
int maxn=-1;
int a[N];
int sum[2*N];
int f1[2*N][2*N];
int f2[2*N][2*N];
int main() {
	scanf("%d",&n);
	for(int i=1;i<=n;++i)
		scanf("%d",&a[i]);
	for(int i=1;i<=2*n;++i) {
		sum[i]+=sum[i-1];
		if(i<=n)
			sum[i]+=a[i];
		else
			sum[i]+=a[i-n];
		for(int j=1;j<=2*n;++j) {
			f1[i][j]=0x7ffffff;
			f2[i][j]=-1;
		}
		f1[i][i]=f2[i][i]=0;
	}
	for(int i=1;i<=n;++i) {
		for(int j=i+1;j<=i+n-1;++j) {
			for(int k=i;k<j;++k) {
				f1[i][j]=min(f1[i][j],f1[i][k]+f1[k+1][j]);
				f2[i][j]=max(f2[i][j],f2[i][k]+f2[k+1][j]);
			}
			f1[i][j]+=sum[j]-sum[i-1];
			f2[i][j]+=sum[j]-sum[i-1];
		}
	}
	for(int i=1;i<=n;++i) {
		minn=min(minn,f1[i][i+n-1]);
		maxn=max(maxn,f2[i][i+n-1]);
	}
	printf("%d\n%d",minn,maxn);
}
2020/9/28 16:49
加载中...