这个为什么只有10分,求大佬
查看原帖
这个为什么只有10分,求大佬
777222
nuaacailei16楼主2024/7/14 21:28
#include <iostream>
#include <cstdio>
using namespace std;

struct {
    int l;
    int r;
}info[101];
int a[101],dp[202][202];

int main() {
    int n;
    cin >> n;

    for (int i = 1; i < n; i++) {
        cin >> a[i];
        if (i == 1) {
            info[i].l = a[i];
        }
        else {
            info[i].l = a[i];
            info[i - 1].r = a[i];
        }
    }

    cin >> a[n];
    info[n].l = info[n - 1].r = 10;
    info[n].r = a[1];

    for (int i = 1; i <= n; i++) {
        info[i + n].l = info[i].l;
        info[i + n].r = info[i].r;
    }

    for (int i = 2; i <= n; i++) {
        for (int j = 1; j <= n; j++) {
            int r = j + i - 1;
            for (int k = j; k < r; k++) {
                dp[j][r] = max(dp[j][r], dp[j][k] + dp[k + 1][r] + info[j].l * info[k].r * info[r].r);
            }
        }
    }

    int m = 0;
    for (int i = 1; i <= n; i++) {
        m = max(m, dp[i][i + n - 1]);
    }

    cout << m;
}
2024/7/14 21:28
加载中...