提个问题
查看原帖
提个问题
1111160
starish楼主2024/8/29 20:10
#include<bits/stdc++.h>
using namespace std;
int n,ans;
int dp[205][205];
int a[205];
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];a[i+n]=a[i];
	}
	for(int l=3;l<=n+1;l++){//为什么n+1,而不是n
		for(int i=1;i+l-1<=n*2;i++){
			int j=i+l-1;
			for(int k=i+1;k<=j-1;k++){
				dp[i][j]=max(dp[i][j],dp[i][k]+dp[k][j]+a[i]*a[k]*a[j]);
				if(l==n+1)ans=max(ans,dp[i][j]);	
			}
		}
	}
	cout<<ans;
	return 0;
}
2024/8/29 20:10
加载中...