#P14586. [LNCPC 2025] 前后缀石子博弈
[LNCPC 2025] 前后缀石子博弈
题目背景
Z 形管道猫邀请我们的老朋友 Alice 和 Bob 来玩他们俩最喜欢的取石子博弈游戏啦……这次是基于前后缀的取石子规则和初始局面生成规则。
题目描述
在一局游戏中,局面由一行 堆石子构成,从前往后是从第 堆到第 堆。Alice 和 Bob 两人轮流取石子。Alice 先取。
在一轮取石子中,本轮操作的玩家首先选择两个非负整数 ,然后从前 个有石子的堆中每堆各取走 颗石子,并且从后 个有石子的堆中每堆各取走 颗石子,但是在同一轮同一堆中最多只能取走 颗石子。
最先在其的一个操作轮中取走 颗石子的玩家输掉本局游戏,另一个玩家胜利。
Alice 和 Bob 将玩 局游戏。记 表示在第 局游戏的初始局面中第 堆的石子数。给定两个非负整数 和第 局游戏的初始局面 。
第 局游戏的初始局面的生成规则是:首先基于第 局游戏的初始局面,然后对前 堆的石子数取该部分的后缀和,并且对后 堆的石子数取该部分的前缀和,其余部分保持不变。
更正式地,
Alice 和 Bob 都将采用最优策略。请您判断在这 局游戏中每一局的胜者。
输入格式
每个测试点包含多组测试数据。第一行给定一个整数 ,表示测试数据组数。
对于每组测试数据:
第一行给定四个整数 $n,m,put_{pre},put_{suf}(1\le n\le10^6,1\le m\le10^6,put_{pre}\ge 0,put_{suf}\ge 0,put_{pre}+put_{suf}\le m)$,分别表示总游戏局数,初始局面的总石子堆数和生成初始局面的两个非负整数。
第二行给定 个整数 ,其中第 个整数 表示在第 局游戏的初始局面中第 堆的石子数。
保证在每个测试点中所有测试数据的 的总和不超过 , 的总和不超过 。
输出格式
对于每组测试数据,输出共 行,每行一个字符串。对于其中第 行,若第 局游戏将是 Alice 胜利,则输出 Alice;否则(第 局游戏将是 Bob 胜利),输出 Bob。
2
3 7 3 2
1 3 1 2 1 2 2
2 6 0 6
7 3 8 3 5 10
Alice
Alice
Bob
Alice
Alice
提示
对于样例的第一组测试数据:
第 局游戏的初始局面为 。
下面是 Alice 和 Bob 可能的博弈过程:
- Alice 选择 ,取走 颗石子,局面变为 ,即(仅保留有石子的堆) 。
- Bob 选择 ,取走 颗石子,局面变为 。
- Alice 选择 ,取走 颗石子,此时局面中所有堆都没有石子。
- Bob 选择 ,取走 颗石子。Bob 输掉本局游戏,Alice 胜利。
第 局游戏的初始局面为 。
第 局游戏的初始局面为 。
对于样例的第二组测试数据,第 局游戏的初始局面为 。
本题的输入输出量较大,请注意所使用的输入输出方式。
最后 Alice 和 Bob 玩吐了,希望他们俩以后别再玩取石子博弈游戏了……
京公网安备 11011102002149号