最小值输出0求助
查看原帖
最小值输出0求助
727008
lwx20211103楼主2022/11/28 22:30

rt

#include <bits/stdc++.h> //I AK IOI.
using namespace std;

int sum[1 << 17], a[1 << 17], dp[1 << 10][1 < 10], dp2[1 << 10][1 << 10], n;

int main()
{
    int maxn = -0x7fffffff, minn = 0x7fffffff;
    cin >> n;
    for (int i = 1; i <= n; i++)
    {
        cin >> a[i];
    }
    for (int i = 1; i <= n; i++)
    {
        sum[i] = sum[i - 1] + a[i];
    }
    int i, k, len;
    for (len = 1; len <= n; len++)
    {
        for (i = 1; i <= (n << 1) - 1; i++)
        {
            int j = len + i - 1;
            for (k = i; k < j && k <= (n << 1) - 1; k++)
            {
                dp[i][j] = max(dp[i][j], dp[i][k] + dp[k + 1][j] + sum[j] - sum[i - 1]);
                dp2[i][j] = min(dp2[i][j], dp2[i][k] + dp2[k + 1][j] + sum[j] - sum[i - 1]);
            }
        }
    }
    for (int i = 1; i <= n; i++)
    {
        maxn = max(maxn, dp[i][i + n - 1]);
        minn = min(minn, dp2[i][i + n - 1]);
    }
    cout << (minn >> 1) << "\n" << (maxn >> 1);
    return 0;
}

2022/11/28 22:30
加载中...