【蓝桥杯集训·每日一题2025】 AcWing 5538. 回文游戏 python
AcWing 5538.回文游戏
Week 3
3月5日
题目描述
贝茜和埃尔茜正在使用一个石子堆进行一个游戏,初始时,石子堆中共有 S S S 个石子。
两头奶牛依次行动,贝茜先行动。
当轮到一头奶牛行动时,她必须从堆中取走 x x x 个石子,其中 x x x 是该奶牛选定的任意正整数回文数。
如果当一头奶牛的回合开始时石子堆是空的,那么这头奶牛就输了。
定义:一个正整数如果从前向后和从后向前读相同,则该数为回文数;回文数的例子有 1 1 1, 121 121 121 和 9009 9009 9009。
数不允许有前导零;例如, 990 990 990 不是回文数。
有 T T T 个独立的测试用例。
对于每一个测试用例,输出如果两头奶牛都采取最优策略,谁会赢得游戏。
输入格式
输入的第一行包含 T T T,为测试用例的数量。
以下 T T T 行为测试用例,每个测试用例一行。
每个测试用例均由一个整数 S S S 指定。
输出格式
对于每一个测试用例输出一行,如果 Bessie
在最优策略下可以从一堆
S
S
S 个石子的石子堆开始赢得游戏,则输出 B
,否则输出 E
。
数据范围
1
≤
T
≤
10
1 \le T \le 10
1≤T≤10,
1
≤
S
<
1
0
1
0
5
1 \le S < 10^{10^5}
1≤S<10105
输入样例:
3
8
10
12
输出样例:
B
E
B
样例解释
对于第一个测试用例,贝茜可以在第一次行动中取走所有石子,因为 8 8 8 是回文数,使她获胜。
对于第二个测试用例, 10 10 10 不是回文数,因此贝茜无法在第一次行动中取走所有石子。无论贝茜第一回合取走多少石子,埃尔茜总能在第二回合取走所有余下的石子,使她获胜。
对于第三个测试用例,可以证明在最优策略下贝茜可以获胜。
博弈论:分析必胜态和必败态
AC _code
t = int(input())
for _ in range(t):
s = input()
if s[-1] == '0':
print('E')
else:
print('B')
END
如果有更多问题或需要进一步的帮助,可以在评论区留言讨论哦!
如果喜欢的话,请给博主点个关注 谢谢