Struggle to pass young test but。
查看原帖
Struggle to pass young test but。
105820
阿尔托莉雅丶楼主2021/6/18 21:05
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
using namespace std;
const int N = 500 + 5;   //remember to modify the range of the data!!
const int mod = 1e9 + 7;
const int inf = 0x3f3f3f3f;
typedef long long ll;

int n, m, t;
int a[N], f[N][N]; //第i堆到第j堆合并成一堆

int main(void)
{
    cin >> n;

    for(int i = 1; i <= n; i++)
        cin >> f[i][i], f[i + n][i + n] = f[i][i];

    for(int len = 2; len <= n; len++)
        for(int l = 1; l <= n * 2; l++)
        {
            int r = l + len - 1;
            for(int k = l; k <= r && r <= n * 2; k++)
                f[l][r] = max(f[l][k] + f[k + 1][r], f[l][r]);
        }
    int ans = 0;
    for(int i = 1; i <= n; i++)
        ans = max(ans, f[i][i + n - 1]);

    cout << ans;
    return 0;
}
2021/6/18 21:05
加载中...