10分啊,费解,求问
查看原帖
10分啊,费解,求问
555905
shenqioh楼主2021/8/16 20:52
#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int n,a[202],f[202][202];
int main(){
	memset(f,-0x3f,sizeof(f));
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		a[i+n]=a[i];
	}
	for(int i=1;i<=n+n;i++){
		f[i][i]=0;
	}
	for(int l=2;l<=n+n;l++){
		for(int i=1;i+l-1<=n+n;i++){
			int j=i+l-1;
			for(int k=i;k<j;k++){
				f[i][j]=max(f[i][j],f[i][k]+f[k+1][j]+a[i]*a[k+1]*a[j]);
			}
		}
	}
	int ans=-2e9;
	for(int i=1;i<=n+n;i++){
		ans=max(ans,f[i][i+n-1]);
	}
	cout<<ans<<endl;
	return 0;
}
2021/8/16 20:52
加载中...