CF2158C.Annoying Game

普及/提高-

通过率:0%

AC君温馨提醒

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

题目描述

给定两个长度为 nn 的整数数组 aa 和 bb,以及总操作轮数 kk。

Alice 和 Bob 一起玩一个游戏,轮流对数组 aa 进行修改。Alice 先手。游戏共进行 kk 轮。

在每轮中,当前玩家必须选择一个索引 ii(1≤i≤n1 \leq i \leq n),并执行以下操作之一:

  • 加法:将 aia_i 增加 bib_i,即令 ai:=ai+bia_i := a_i + b_i;
  • 减法:将 aia_i 减少 bib_i,即令 ai:=ai−bia_i := a_i - b_i。

第 kk 轮结束后,最终得分定义为修改后数组 aa 的最大非空子数组和。Alice 的目标是最大化最终得分,而 Bob 的目标是最小化最终得分。

假设双方都采取最优策略,请你计算最终得分。

数组 aa 的最大非空子数组和定义为 max⁡1≤i≤j≤nS(i,j)\max_{1 \leq i \leq j \leq n} S(i, j),其中 S(i,j)=ai+ai+1+⋯+ajS(i, j) = a_i + a_{i+1} + \cdots + a_j。注意,不考虑空子数组。

输入格式

每组测试数据包含多组测试用例。第一行包含一个整数 tt(1≤t≤1041 \le t \le 10^4)表示测试用例个数。

每个测试用例第一行包含两个整数 nn 和 kk(1≤n≤2⋅1051 \le n \le 2 \cdot 10^5,1≤k≤2⋅1051 \le k \le 2 \cdot 10^5)——数组的长度和总的操作轮数。

第二行包含 nn 个整数 a1,a2,…,ana_1,a_2,\ldots,a_n(−109≤ai≤109-10^9 \leq a_i \leq 10^9),表示数组 aa 的元素。

第三行包含 nn 个整数 b1,b2,…,bnb_1,b_2,\ldots,b_n(0≤bi≤1090 \leq b_i \leq 10^9),表示数组 bb 的元素。

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

输出格式

每个测试用例输出一行一个整数,表示在 kk 轮操作结束后,双方最优博弈下的最终得分。

输入输出样例

  • 输入#1

    5
    5 200000
    3 -1 9 -5 4
    0 0 0 0 0
    4 5
    10 10 10 10
    1 1 1 1
    3 1
    2 -7 3
    1 11 3
    3 2
    2 -7 3
    1 11 3
    1 1
    -3
    2

    输出#1

    11
    41
    9
    3
    -1

说明/提示

对于第一个测试用例:

  • 所有 bb 中的元素均为零,因此无论如何操作数组 aa 都不会变化。
  • 最终数组的最大非空子数组和为 3+(−1)+9=113 + (-1) + 9 = 11。

对于第二个测试用例,其中一种可能的最优操作顺序为:

  • Alice 将 b3=1b_3=1 加到 a3a_3 上。数组 aa 变为 [10,10,11,10][10, 10, 11, 10]。
  • Bob 从 a1a_1 减去 b1=1b_1=1。数组 aa 变为 [9,10,11,10][9, 10, 11, 10]。
  • Alice 再次将 b3=1b_3=1 加到 a3a_3 上。数组 aa 变为 [9,10,12,10][9, 10, 12, 10]。
  • Bob 再次从 a1a_1 减去 b1=1b_1=1。数组 aa 变为 [8,10,12,10][8, 10, 12, 10]。
  • Alice 将 b4=1b_4=1 加到 a4a_4 上。数组 aa 变为 [8,10,12,11][8, 10, 12, 11]。
  • 最终数组最大非空子数组和为 8+10+12+11=418+10+12+11 = 41。

对于第三个测试用例,其中一种可能的最优操作顺序为:

  • Alice 将 b2=11b_2=11 加到 a2a_2 上。数组 aa 变为 [2,4,3][2, 4, 3]。
  • 最终数组最大非空子数组和为 2+4+3=92+4+3=9。

对于第四个测试用例,其中一种可能的最优操作顺序为:

  • Alice 将 b2=11b_2=11 加到 a2a_2 上。数组 aa 变为 [2,4,3][2, 4, 3]。
  • Bob 将 b2=11b_2=11 从 a2a_2 中减去。数组 aa 变为 [2,−7,3][2, -7, 3]。
  • 最终数组最大非空子数组和为 33。

由 ChatGPT 5 翻译

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

首页