CF1991H.Prime Split Game

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

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

题目描述

Alice 和 Bob 正在玩一个有 nn 堆石子的游戏,第 ii 堆有 aia_i 个石子。两人轮流操作,Alice 先手。

每次操作,玩家需要完成以下三步:

  1. 选择一个整数 kk(1≤k≤n21 \leq k \leq \frac{n}{2})。注意,不同回合可以选择不同的 kk。
  2. 移除 kk 堆石子。
  3. 再选择另外 kk 堆石子,将每一堆分成两堆,每一新堆的石子数都必须是质数。

无法进行操作的玩家判负。

请判断如果双方都采取最优策略,谁会获胜。

输入格式

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

每组测试用例的第一行包含一个整数 nn(2≤n≤2⋅1052 \leq n \leq 2 \cdot 10^5),表示石子的堆数。

第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \ldots, a_n(1≤ai≤2⋅1051 \leq a_i \leq 2 \cdot 10^5),表示每堆石子的数量。

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

输出格式

对于每组测试用例,如果 Alice 获胜,输出 "Alice"(不含引号);否则输出 "Bob"(不含引号)。

输出时字母大小写不敏感。例如,"alIcE"、"Alice" 和 "alice" 都视为正确答案。

输入输出样例

  • 输入#1

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

    输出#1

    Bob
    Alice
    Alice
    Bob

说明/提示

在第一个测试用例中,有 22 堆石子,分别有 22 和 11 个石子。由于 11 和 22 都无法分成两个质数的堆,Alice 无法进行操作,因此 Bob 获胜。

在第二个测试用例中,有 33 堆石子,分别有 33、55 和 77 个石子。Alice 可以选择 k=1k=1,移除 77 个石子的那一堆,然后将 55 个石子的那一堆分成 22 和 33 两堆(都是质数)。此时剩下 33 堆石子,分别为 33、22 和 33 个,Bob 无法进行有效操作,因此 Alice 获胜。

在第三个测试用例中,有 44 堆石子,分别为 44、66、88 和 1010 个。Alice 可以选择 k=2k=2,移除 88 和 1010 个石子的两堆,将 44 个石子的那一堆分成 22 和 22 两堆,将 66 个石子的那一堆分成 33 和 33 两堆。此时 Bob 无法进行有效操作,因此 Alice 获胜。

在第四个测试用例中,有 55 堆石子,每堆都是 88 个。可以证明,如果双方都采取最优策略,Bob 会获胜。

由 ChatGPT 4.1 翻译

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

首页