CF2140C Ultimate Value
题目描述
我们定义一个函数 $f(a)$,对于长度为 $n$ 的数组 $a$,有:
$$
f(a) = \textrm{cost} + (a_1 - a_2 + a_3 - a_4 \cdots a_n)
$$
其中,$\textrm{cost}$ 初始为零。
现在,Alice 和 Bob 得到一个长度为 $n$ 的数组 $a$。他们轮流进行游戏,最多可以进行 $10^{100}$ 轮,Alice 先手。
在每一轮中,他们必须执行以下操作中的**一种(仅可执行一种)**:
- 终止游戏(对 Alice 和 Bob 都终止)。
- 选择两个下标 $l,r$,满足 $1 \le l \le r \le n$,交换 $a_l$ 和 $a_r$ 的值;这会令 $\textrm{cost}$ 增加 $(r - l)$。
假设 Alice 总是试图最大化 $f(a)$,而 Bob 试图最小化 $f(a)$。
你的任务是,假设双方都采取最优策略时,输出最后的 $f(a)$。
输入格式
每个测试点包含多组测试数据。第一行为测试用例数 $t$($1 \le t \le 10^4$)。接下来的每组测试数据格式如下:
每组的第一行为一个整数 $n$($1 \le n \le 2\cdot10^5$),表示数组 $a$ 的长度。
第二行为 $n$ 个整数 $a_1,a_2,a_3,\ldots,a_n$($1 \le a_i \le 10^9$),表示数组 $a$ 的元素。
保证所有测试用例中 $n$ 的总和不超过 $2\cdot10^5$。
输出格式
对于每个测试用例,输出一行,一个整数,表示在最优对抗下最终的 $f(a)$。
说明/提示
对于第一个测试用例,Alice 在自己的第一步就选择终止游戏是最优策略。
此时 $\textrm{cost} = 0$,$f(a) = 0 + 1000 - 1 = 999$。
对于第四个测试用例,Alice 选择交换 $a_1$ 和 $a_6$,Bob 此后选择终止游戏是最优策略。
所以最终 $\textrm{cost} = 5$,$f(a) = 5 + 15 - 14 + 1 - 14 + 1 - 1 = -7$。
由 ChatGPT 5 翻译