50分求助!
查看原帖
50分求助!
762837
msht2006楼主2023/2/19 20:48
#include<cstdio>
long long dp[200][200];
long long N,E[200];
long long ans;
int max(long x,long y){
	if (x<y) x=y;
	return x;
}
int main(){
	scanf("%lld",&N);
	for(int i=1;i<=N;i++) scanf("%lld",&E[i]);
	for(int i=1;i<=N;i++) E[N+i]=E[i];
	for(int k=1;k<=N-1;k++) for(int i=1;i<=N;i++) for(int j=i;j<i+k;j++) dp[i][i+k]=max(dp[i][i+k],dp[i][j]+dp[j+1][i+k]+E[i]*E[j+1]*E[i+k+1]);
	for(int i=1;i<=N;i++) ans=max(ans,dp[i][N+i-1]);
	printf("%lld",ans);
}

1、4、8、9、10未过!求助!

2023/2/19 20:48
加载中...