3 条题解

  • 0
    @ 2026-3-27 16:01:18
    #include <bits/stdc++.h>
    using namespace std;
    const int N = 1e3 + 10;
    const int INF = 0x3f3f3f3f;
    const long long LLINF = 0x3f3f3f3f3f3f3f3fLL;
    int a[N], sum[N], dp[N][N];
    int main(){
    	int n;
    	cin >> n;
    	for(int i = 1 ; i <= n ; i++){
    		cin >> a[i];
    		a[n + i] = a[i];
    	}
    	for(int i = 2 ; i <= n + 1 ; i++){
    		for(int l = 1, r = i ; r <= 2 * n ; l++, r++){
    			for(int k = l + 1 ; k <= r - 1 ; k++){
    				dp[l][r] = max(dp[l][r], dp[l][k] + dp[k][r] + a[l] * a[k] * a[r]);
    			} 
    		}
    	}
    	int maxx = 0;
    	for(int i = 1 ; i <= n ; i++){
    		maxx = max(maxx, dp[i][i + n]);
    	}
    	cout << maxx << endl;
    	return 0;
    } 
    

    信息

    ID
    230
    时间
    1000ms
    内存
    256MiB
    难度
    4
    标签
    递交数
    185
    已通过
    92
    上传者