10pts求助(玄关)
查看原帖
10pts求助(玄关)
1287433
__ycy1124__楼主2024/8/20 16:06
#include<bits/stdc++.h>
using namespace std;
long long n,w[201],dp[201][201],ans=0;
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
		cin>>w[i];
		w[i+n]=w[i];
		dp[i][i]=0;
		dp[i+n][i+n]=0;
	}
	for(int len=2;len<=n;len++){
		for(int i=1;i<=2*n-len+1;i++){
			dp[i][i+len-1]=0;
			for(int k=i;k<i+len-1;k++){
				dp[i][i+len-1]=max(dp[i][i+len-1],dp[i][k]+dp[k+1][i+len-1]+w[i]*w[k+1]*w[i+len-1]);
			}
			ans=max(ans,dp[i][i+len-1]);
			printf("%lld ",dp[i][i+len-1]);
		}
		printf("\n");
	}
	cout<<ans;
    return 0;
}
2024/8/20 16:06
加载中...