区间DP,80pts
查看原帖
区间DP,80pts
1126733
lxc129楼主2025/2/3 20:24
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,a[101],f[201][201],ans;
int main(){
	cin>>n;
	for (ll i=1;i<=n;i++){
		cin>>a[i];
		a[i+n]=a[i];
	}
	for (ll l=2;l<=n+1;l++)
	for (ll i=1;i+l-1<=2*n;i++){
		ll j=i+l-1;
		for (ll k=i+1;k<j;k++) f[i][j]=max(f[i][j],f[i][k]+f[k][j]+a[i]*a[k]*a[j]);
	}
	for (ll i=1;i<=n;i++) ans=max(ans,f[i][n+i]);
	cout<<ans;
}
2025/2/3 20:24
加载中...