CF2140C.Ultimate Value

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

我们定义一个函数 f(a)f(a),对于长度为 nn 的数组 aa,有:

f(a)=cost+(a1−a2+a3−a4⋯an)f(a) = \textrm{cost} + (a_1 - a_2 + a_3 - a_4 \cdots a_n)

其中,cost\textrm{cost} 初始为零。

现在,Alice 和 Bob 得到一个长度为 nn 的数组 aa。他们轮流进行游戏,最多可以进行 1010010^{100} 轮,Alice 先手。

在每一轮中,他们必须执行以下操作中的一种(仅可执行一种):

  • 终止游戏(对 Alice 和 Bob 都终止)。
  • 选择两个下标 l,rl,r,满足 1≤l≤r≤n1 \le l \le r \le n,交换 ala_l 和 ara_r 的值;这会令 cost\textrm{cost} 增加 (r−l)(r - l)。

假设 Alice 总是试图最大化 f(a)f(a),而 Bob 试图最小化 f(a)f(a)。

你的任务是,假设双方都采取最优策略时,输出最后的 f(a)f(a)。

输入格式

每个测试点包含多组测试数据。第一行为测试用例数 tt(1≤t≤1041 \le t \le 10^4)。接下来的每组测试数据格式如下:

每组的第一行为一个整数 nn(1≤n≤2⋅1051 \le n \le 2\cdot10^5),表示数组 aa 的长度。

第二行为 nn 个整数 a1,a2,a3,…,ana_1,a_2,a_3,\ldots,a_n(1≤ai≤1091 \le a_i \le 10^9),表示数组 aa 的元素。

保证所有测试用例中 nn 的总和不超过 2⋅1052\cdot10^5。

输出格式

对于每个测试用例,输出一行,一个整数,表示在最优对抗下最终的 f(a)f(a)。

输入输出样例

  • 输入#1

    5
    2
    1000 1
    5
    9 9 9 9 9
    4
    7 1 8 4
    6
    1 14 1 14 1 15
    9
    31 12 14 22 89 6 78 25 91

    输出#1

    999
    13
    12
    -7
    265

说明/提示

对于第一个测试用例,Alice 在自己的第一步就选择终止游戏是最优策略。

此时 cost=0\textrm{cost} = 0,f(a)=0+1000−1=999f(a) = 0 + 1000 - 1 = 999。

对于第四个测试用例,Alice 选择交换 a1a_1 和 a6a_6,Bob 此后选择终止游戏是最优策略。

所以最终 cost=5\textrm{cost} = 5,f(a)=5+15−14+1−14+1−1=−7f(a) = 5 + 15 - 14 + 1 - 14 + 1 - 1 = -7。

由 ChatGPT 5 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页