#P14106. [ZJCPC 2017] Yet Another Game of Stones

[ZJCPC 2017] Yet Another Game of Stones

Description

Alice 和 Bob 又在玩一款新的石子游戏。该游戏的规则如下:

  • 游戏一开始有 nn 堆石子,编号从 11nn。第 ii 堆中有 aia_i 个石子,并且有一个特殊约束 bib_i

  • 两位玩家轮流移动。两位玩家的可操作方式不同

  • Bob 的一次合法操作是从某一堆中取走一定数量的石子(取走的数量可以是任意正整数)。

  • Alice 的一次合法操作也是从某一堆中取走一定数量的石子,但受到该堆 bib_i 的约束:

    • bi=0b_i=0,没有任何额外约束。
    • bi=1b_i=1,Alice 只能从该堆取走奇数个石子。
    • bi=2b_i=2,Alice 只能从该堆取走偶数个石子。

    注意:Bob 没有任何额外取石子的约束。

  • 不能进行合法操作的人输掉比赛。

Alice 总是先手。若两人都采取最优策略,你能判断谁会赢吗?

Input Format

有多组测试数据。输入的第一行是整数 TT,表示测试数据组数。对于每组测试数据:

第一行是一个整数 nn1n1051 \le n \le 10^5),表示石子堆的数量。

第二行包含 nn 个整数 a1,a2,,ana_1,a_2,\dots,a_n1ai1091 \le a_i \le 10^9),表示每堆中石子的数量。

第三行包含 nn 个整数 b1,b2,,bnb_1,b_2,\dots,b_n0bi20 \le b_i \le 2),表示每堆的特殊约束。

保证所有测试数据中 nn 的总和不超过 10610^6

温馨提示:本题数据量较大,建议使用更快的输入输出方式。例如,在 C++ 中可使用 scanf/printf 替代 cin/cout。

Output Format

对于每组测试数据,若 Alice 能赢,输出 "Alice"(不含引号);否则输出 "Bob"(不含引号)。

3
2
4 1
1 0
1
3
2
1
1
2
Alice
Bob
Bob

Hint

对于第一个测试样例,Alice 可以从第一堆取走 33 个石子,然后她会赢下游戏。

对于第二个测试样例,Alice 只能取偶数个石子,因此无法在第一步取光全部石子。所以 Bob 可以在他的回合取完剩下的所有石子获胜。

对于第三个测试样例,Alice 无法在开局时进行任何操作,因此 Bob 获胜。

由 ChatGPT 5 翻译