欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF2104C.Card Game
Card Game
题目描述
Alice 和 Bob 正在玩一个游戏。他们共有 张编号从 到 的卡牌。游戏开始时,部分卡牌分配给 Alice,其余分配给 Bob。
编号为 的卡牌能击败编号为 的卡牌当且仅当 ,但有一个例外:编号 的卡牌可以击败编号 的卡牌。
游戏会持续进行,直到某一方没有卡牌为止。每一回合的操作如下:
- Alice 从自己的卡牌中选择一张正面朝上放在桌上;
- Bob 在看到 Alice 的卡牌后,从自己的卡牌中选择一张正面朝上放在桌上;
- 如果 Alice 的卡牌击败 Bob 的卡牌,两张卡牌都由 Alice 收走;否则,两张卡牌都由 Bob 收走。
玩家可以使用之前回合中获得的卡牌。
在某一回合开始时没有卡牌的玩家输掉游戏。假设双方都采取最优策略,判断谁会获胜。
输入格式
第一行包含一个整数 ()——测试用例的数量。
每个测试用例包含两行:
- 第一行包含一个整数 ()——卡牌的数量;
- 第二行包含 个字符,每个字符是 A 或 B。如果第 个字符是 A,则编号 的卡牌初始属于 Alice;否则属于 Bob。
输入数据的额外约束:每个测试用例中,Alice 和 Bob 初始至少各有一张卡牌。
输出格式
对于每个测试用例,如果 Alice 在最优策略下获胜,输出 Alice;否则输出 Bob。可以证明在双方都采取最优策略时,游戏一定会在有限回合内结束,且一方必定获胜。
说明/提示
在第一个测试用例中,Alice 和 Bob 各有一张卡牌。由于 Alice 的卡牌能击败 Bob 的卡牌,她在第一回合后获胜。
在第二个测试用例中,Alice 和 Bob 各有一张卡牌。由于 Bob 的卡牌能击败 Alice 的卡牌,他在第一回合后获胜。
在第三个测试用例中,有两种可能的游戏进程:
- 如果 Alice 在第一回合出卡 ,Bob 可以用卡 应对并收走两张卡。然后 Alice 必须在第二回合出卡 ,Bob 会用卡 应对,最终 Bob 获胜;
- 如果 Alice 在第一回合出卡 ,Bob 可以用卡 应对并收走两张卡。然后 Alice 必须出卡 ,Bob 可以用卡 或卡 应对,最终 Bob 获胜。
在第四个测试用例中,有两种可能的游戏进程:
- 如果 Alice 在第一回合出卡 ,Bob 可以用卡 应对并收走两张卡。然后 Alice 必须在第二回合出卡 ,Bob 会用卡 应对,最终 Bob 获胜;
- 如果 Alice 在第一回合出卡 ,Bob 可以用卡 应对并收走两张卡。然后 Alice 必须出卡 ,Bob 可以用卡 或卡 应对,最终 Bob 获胜。
翻译由 DeepSeek V3 完成
样例
8
2
AB
2
BA
4
ABAB
4
BABA
3
BAA
5
AAAAB
5
BAAAB
6
BBBAAA
Alice
Bob
Bob
Bob
Alice
Alice
Bob
Alice
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |