B. Summation Game
题意
输入
输出
思路
遇到两人博弈问题,可以分别贪心,先贪心一个固定下来,然后遍历贪心另一个人
void solve()
{int n, k, x;cin >> n >> k >> x;vector<int> arr(n + 1);int *s = new int[n + 1];s[0] = 0;fer(i, 1, n + 1) cin >> arr[i];sort(all(arr));fer(i, 1, n + 1) s[i] = s[i - 1] + arr[i];int ans;fer(i, 0, k + 1){int res = 0, l = min(x, n - i); // 可变号数量res = s[n - i] - 2 * (s[n - i] - s[n - i - l]);if (i == 0)ans = res;elseans = max(ans, res);}cout << ans << '\n';
}