#A17. 【USTC新生赛2025】B. 对战
【USTC新生赛2025】B. 对战
本题 Python 时间限制 6s。
题目描述
Alice 和 Bob 正在玩一种对战游戏。初始时,双方分别有 、 个士兵。双方轮流行动,Alice 先行动。每次行动中,行动一方可以命令每名己方士兵执行一次操作,操作为以下三种之一:
- 消灭对方的一名无护盾士兵。
- 给己方的一名士兵加护盾,护盾仅在下一次行动有效。
- 什么也不做。
同一次行动中,士兵不能同时作为护盾的施加者与接受者,即:给自己加护盾、两名士兵互加护盾、三名士兵互加护盾等等都是不允许的。
全军覆没的一方判负,判定是否存在必胜策略。
输入格式
多组数据
首先输入一行,包含一个整数 (),表示测试数据组数。
之后输入 行,每行两个整数 ,用空格隔开,满足 ,分别表示 Alice 与 Bob 的初始兵力。
输出格式
输出 行,表示每组测试数据的结果。若先手存在必胜策略,输出Alice,若后手存在必胜策略,输出Bob,若双方均不存在必胜策略,输出Kruskal。
样例 #1
样例输入 #1
2
6 10
7 10
样例输出 #1
Bob
Alice
提示
以样例中的第一组测试为例,一个可能的对战过程如下:
第一次行动,Alice 命令所有士兵进攻。下一次行动开始之前,Alice 剩余 6 名无盾士兵,Bob 剩余 4 名士兵。
第二次行动,Bob 命令 2 名士兵进攻,2 名士兵给进攻士兵加盾。下一次行动开始之前,Alice 剩余 4 名士兵,Bob 剩余 2 名无盾士兵,2 名有盾士兵。
第三次行动,Alice 命令 2 名士兵进攻,2 名士兵给进攻士兵加盾。下一次行动开始之前,Alice 剩余 2 名无盾士兵,2名有盾士兵,Bob 剩余 2 名士兵。
第四次行动,Bob 命令 1 名士兵进攻,1 名士兵给进攻士兵加盾。下一次行动开始之前,Alice 剩余3名士兵,Bob 剩余 1 名无盾士兵,1 名有盾士兵。
第五次行动,Alice 命令 1 名士兵进攻,1 名士兵给进攻士兵加盾,1 名士兵闲置。下一次行动开始之前,Alice 剩余 2 名无盾士兵,1 名有盾士兵,Bob 剩余 1 名士兵。
第六次行动,Bob 命令 1 名士兵进攻。下一次行动开始之前,Alice 剩余 2 名士兵,Bob 剩余 1 名无盾士兵。
第七次行动,Alice 命令 1 名士兵进攻,1 名士兵闲置。Bob 全军覆没,游戏结束,Alice 获胜。
可证明对于第一组测试,Bob 事实上存在必胜策略。