CF1956B.Nene and the Card Game

传统题 时间 2000 ms 内存 256 MiB 3 尝试 1 已通过 1 标签

Nene and the Card Game

题目描述

你和 Nene 正在玩一款纸牌游戏。游戏使用一副包含 2n2n 张牌的牌堆,每张牌上写有一个从 11nn 的整数,并且每个整数 11nn 恰好各出现 22 次。此外,桌面上有一个区域用于放置打出的牌(初始时桌面为空)。

游戏开始时,这 2n2n 张牌被分配给你和 Nene,每人各获得 nn 张牌。

接下来,你和 Nene 轮流进行 2n2n 个回合,也就是说每人各进行 nn 次操作,由你先手。每一回合:

  • 当前玩家从自己手中选择一张牌,假设牌上的数字为 xx
  • 如果桌面上已经有一张数字为 xx 的牌,则当前玩家获得 11 分,否则不得分。然后,他将这张数字为 xx 的牌放到桌面上。

注意,所有回合都是公开进行的:每位玩家在任何时刻都能看到桌面上的所有牌。

Nene 非常聪明,她总是以最优策略选择出牌,以使自己在游戏结束(2n2n 回合后)获得的分数最大。如果有多种最优选择,她会选择能让你最终得分最少的那种。

更正式地说,Nene 总是优先最大化自己的最终得分,其次最小化你的最终得分。

假设牌已经分配完毕,你手中的牌上的数字为 a1,a2,,ana_1, a_2, \ldots, a_n。请问如果你也采取最优策略,你最多能获得多少分?

输入格式

每组测试数据包含多个测试用例。第一行包含一个整数 tt1t1041 \le t \le 10^4),表示测试用例的数量。

每个测试用例的第一行包含一个整数 nn1n2×1051 \le n \le 2 \times 10^5),表示你和 Nene 各自手中的牌数。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \ldots, a_n1ain1 \le a_i \le n),表示你手中每张牌上的数字。保证每个整数 11nn 在序列 a1,a2,,ana_1, a_2, \ldots, a_n 中最多出现 22 次。

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

输出格式

对于每个测试用例,输出一个整数,表示你在采取最优策略时最多能获得的分数。

说明/提示

在第一个测试用例中,你手中的牌上的数字为 11112233。Nene 手中的牌上的数字为 22334444。游戏过程可能如下:

  1. 你选择一张数字为 11 的牌并放到桌面上。
  2. Nene 选择一张数字为 44 的牌并放到桌面上。
  3. 你选择另一张数字为 11 的牌,获得 11 分,并将其放到桌面上。
  4. Nene 选择另一张数字为 44 的牌,获得 11 分,并将其放到桌面上。
  5. 你选择数字为 22 的牌并放到桌面上。
  6. Nene 选择数字为 22 的牌,获得 11 分,并将其放到桌面上。
  7. 你选择数字为 33 的牌并放到桌面上。
  8. Nene 选择数字为 33 的牌,获得 11 分,并将其放到桌面上。

最终,你获得 11 分,Nene 获得 33 分。可以证明,如果 Nene 采取最优策略,你无法获得超过 11 分,因此答案为 11

在第二个测试用例中,如果双方都采取最优策略,你可以获得 22 分,Nene 获得 66 分。

由 ChatGPT 4.1 翻译

样例

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

在线编程 IDE

建议全屏模式获得最佳体验