1 条题解

  • 0
    @ 2024-12-7 11:00:14
    #include <bits/stdc++.h>
    using namespace std;
    const int N=610;
    int f[N][N],a[N],n,ans=0,j;
    int main(){
    	cin>>n;
    	memset(f,0,sizeof(f));
    	for(int i=1; i<=n; i++)
    		cin>>a[i],a[i+n]=a[i];
    	for(int len=0; len<=n; len++)
    		for(int i=1; len+i<=2*n; i++){
    			j=i+len;
    			for(int k=i; k<j; k++)
    				f[i][j]=max(f[i][j],f[i][k]+f[k+1][j]+a[i]*a[k+1]*a[j+1]);
    		}
    	for(int i=1; i<=n; i++)
    		ans=max(ans,f[i][i+n-1]);
    	cout<<ans;
    	return 0;
    }
    

    信息

    ID
    5121
    时间
    1000ms
    内存
    128MiB
    难度
    4
    标签
    递交数
    57
    已通过
    21
    上传者