关于区间长度
查看原帖
关于区间长度
390770
S0CRiA楼主2021/7/1 11:55
//P1063
#include <iostream>
#include <cstdio>
using namespace std;

const int N=210;
int n,a[N],dp[N][N],ans=-1;

int main(){
	scanf("%d",&n);
	for(int i=1; i<=n; ++i)
		scanf("%d",&a[i]), a[i+n]=a[i];
	
	for(int len=3; len<=n+1; ++len)//为什么这里是从 3 到 n+1 ?
		for(int l=1; l+len-1<=n*2; ++l){
			int r=l+len-1;
			for(int mid=l+1; mid<=r-1; ++mid)
				dp[l][r]=max(dp[l][r],dp[l][mid]+dp[mid][r]+a[l]*a[mid]*a[r]);
		}

	for(int i=1; i<=n; ++i)
		ans=max(ans,dp[i][i+n]);
	printf("%d",ans);
	
	return 0;
}
2021/7/1 11:55
加载中...