CF2084G1.Wish Upon a Satellite (Easy Version)

省选/NOI-

通过率:0%

AC君温馨提醒

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

题目描述

这是该问题的简单版本。与困难版本的区别在于,本版本中 t≤1000t \le 1000、n≤5000n \le 5000 且所有测试用例的 nn 之和不超过 50005000。只有当你解决了该问题的所有版本时才能进行 hack。

对于一个长度为 kk 的非空序列 cc,定义 f(c)f(c) 如下:

  • Turtle 和 Piggy 正在一个序列上玩游戏。他们被给定序列 c1,c2,…,ckc_1, c_2, \ldots, c_k,由 Turtle 先手。Turtle 和 Piggy 轮流进行操作(Turtle 第一步,Piggy 第二步,Turtle 第三步,依此类推)。
  • 游戏规则如下:
    • 设当前序列长度为 mm。如果 m=1m = 1,游戏结束。
    • 如果游戏未结束且轮到 Turtle,Turtle 必须选择一个整数 ii(1≤i≤m−11 \le i \le m - 1),将 cic_i 设为 min⁡(ci,ci+1)\min(c_i, c_{i + 1}),并删除 ci+1c_{i + 1}。
    • 如果游戏未结束且轮到 Piggy,Piggy 必须选择一个整数 ii(1≤i≤m−11 \le i \le m - 1),将 cic_i 设为 max⁡(ci,ci+1)\max(c_i, c_{i + 1}),并删除 ci+1c_{i + 1}。
  • Turtle 希望最终 c1c_1 的值最大化,而 Piggy 希望最终 c1c_1 的值最小化。
  • f(c)f(c) 表示双方都采取最优策略时,最终 c1c_1 的值。

对于一个长度为 nn 的排列 pp ∗^{\text{∗}},Turtle 定义该排列的美观度为 ∑i=1n∑j=inf([pi,pi+1,…,pj])\sum\limits_{i = 1}^n \sum\limits_{j = i}^n f([p_i, p_{i + 1}, \ldots, p_j])(即所有 pp 的非空子段 †^{\text{†}} cc 的 f(c)f(c) 之和)。

Piggy 给 Turtle 一个长度为 nn 的排列 aa,其中部分元素缺失(用 00 表示)。

Turtle 请你确定一个排列 bb,满足以下条件:

  • bb 可以通过填充 aa 中缺失的元素得到(即对于所有 1≤i≤n1 \le i \le n,如果 ai≠0a_i \ne 0,则 bi=aib_i = a_i)。
  • 排列 bb 的美观度最大化。

为了方便,你只需要找到这样的排列 bb 的最大美观度。

∗^{\text{∗}} 长度为 nn 的排列是指由 11 到 nn 的 nn 个不同整数按任意顺序组成的数组。例如,[2,3,1,5,4][2,3,1,5,4] 是一个排列,但 [1,2,2][1,2,2] 不是排列(因为 22 在数组中出现了两次),[1,3,4][1,3,4] 也不是排列(因为 n=3n=3 但数组中包含 44)。

†^{\text{†}} 序列 aa 是序列 bb 的子段,当且仅当 aa 可以通过从 bb 的开头和结尾删除若干(可能为零或全部)元素得到。

输入格式

每个测试包含多个测试用例。第一行包含测试用例的数量 tt(1≤t≤10001 \le t \le 1000)。接下来是每个测试用例的描述。

每个测试用例的第一行包含一个整数 nn(1≤n≤50001 \le n \le 5000)。
第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \ldots, a_n(0≤ai≤n0 \le a_i \le n)。保证 aa 中非 00 的元素互不相同。
保证所有测试用例的 nn 之和不超过 50005000。

输出格式

对于每个测试用例,输出一个整数——排列 bb 的最大美观度。

输入输出样例

  • 输入#1

    8
    2
    1 0
    3
    0 0 0
    3
    0 1 0
    5
    3 2 4 5 1
    7
    0 3 2 5 0 0 0
    10
    1 2 6 5 8 9 0 0 0 0
    5
    0 4 1 0 0
    5
    0 1 5 2 3

    输出#1

    4
    12
    11
    44
    110
    300
    45
    40

说明/提示

  • 在第一个测试用例中,美观度最大的排列 bb 是 [1,2][1, 2]。[1,2][1, 2] 的美观度为 44,因为 f([1])+f([2])+f([1,2])=1+2+1=4f([1]) + f([2]) + f([1, 2]) = 1 + 2 + 1 = 4。如果 c=[1,2]c = [1, 2],则 f(c)=1f(c) = 1,因为 Turtle 只能选择 i=1i = 1,并将 c1c_1 设为 min⁡(c1,c2)=1\min(c_1, c_2) = 1。

  • 在第二个测试用例中,美观度最大的排列之一是 [3,2,1][3, 2, 1]。[3,2,1][3, 2, 1] 的美观度为 1212,因为 f([3])+f([2])+f([1])+f([3,2])+f([2,1])+f([3,2,1])=3+2+1+2+1+3=12f([3]) + f([2]) + f([1]) + f([3, 2]) + f([2, 1]) + f([3, 2, 1]) = 3 + 2 + 1 + 2 + 1 + 3 = 12。

  • 在第三个测试用例中,美观度最大的排列之一是 [2,1,3][2, 1, 3]。

  • 在第四个测试用例中,如果 c=[3,2,4,5,1]c = [3, 2, 4, 5, 1],则 f(c)=3f(c) = 3。一种可能的游戏过程如下:

    • Turtle 选择 i=3i = 3,将 c3c_3 设为 min⁡(c3,c4)=4\min(c_3, c_4) = 4 并删除 c4c_4。序列变为 [3,2,4,1][3, 2, 4, 1]。
    • Piggy 选择 i=1i = 1,将 c1c_1 设为 max⁡(c1,c2)=3\max(c_1, c_2) = 3 并删除 c2c_2。序列变为 [3,4,1][3, 4, 1]。
    • Turtle 选择 i=2i = 2,将 c2c_2 设为 min⁡(c2,c3)=1\min(c_2, c_3) = 1 并删除 c3c_3。序列变为 [3,1][3, 1]。
    • Piggy 选择 i=1i = 1,将 c1c_1 设为 max⁡(c1,c2)=3\max(c_1, c_2) = 3 并删除 c2c_2。序列变为 [3][3]。
    • 序列长度为 11,游戏结束。最终 c1c_1 的值为 33。
  • 在第五个测试用例中,美观度最大的排列之一是 [1,3,2,5,6,4,7][1, 3, 2, 5, 6, 4, 7]。

翻译由 DeepSeek V3 完成

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

首页