CF1956B.Nene and the Card Game

入门

通过率:0%

AC君温馨提醒

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

题目描述

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

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

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

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

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

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

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

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

输入格式

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

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

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

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

输出格式

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

输入输出样例

  • 输入#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

    1
    2
    1
    0
    0

说明/提示

在第一个测试用例中,你手中的牌上的数字为 11、11、22 和 33。Nene 手中的牌上的数字为 22、33、44 和 44。游戏过程可能如下:

  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 翻译

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

首页