首页 > 试题广场 >

填字母游戏

[编程题]填字母游戏
  • 热度指数:63 时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\hspace{15pt}Bob 在纸上画了一行 n 个格子,要 Alice 和他交替往其中填入字母。具体而言,规则如下:

\hspace{15pt}轮到某人填的时候,只能在某个空格中填入 L 或 O。谁先让这个格子中存在连续子串 \texttt{LOL},谁就会立即获胜获胜。特别的,如果所有格子都填满了,仍无法组成 \texttt{LOL},则游戏平局。

\hspace{15pt}Alice 试验了几次都输了,他很惭愧,希望你能用计算机帮他复盘一下若干游戏中的情形下自己的最好结局。具体而言,对于给定一个已经填写一部分的字符串 s,如果 Alice 先手且双方都采取最佳策略,你需要判定最终游戏的结果。

输入描述:
\hspace{15pt}输入的第一行包含一个正整数 T \left( 1 \leqq T \leqq 10\right),测试用例数。

\hspace{15pt}接下来 T 行,每行一个字符串s \left( s_i \in \{ \texttt{*},\texttt{L},\texttt{O}\}\right),表示游戏开始的局面,其中 \texttt{*} 表示空格,\texttt{L} 表示已经填入字符 L 的格子,\texttt{O} 表示已经填入字符 O 的格子。

\hspace{15pt}比如:\texttt{******} 表示有 6 个空格;\texttt{L****} 表示左边是一个字母 L,它的右边是 4 个空格。


输出描述:
\hspace{15pt}输出 n 行,表示对每个局面下最终游戏的结果。如果 Alice 能赢,输出 \texttt{Alice};如果 Bob 能赢,输出 \texttt{Bob};如果最终游戏以平局结束,输出 \texttt{Tie}
示例1

输入

4
***
L**L
L**L***L
L*****L

输出

Tie
Bob
Alice
Alice

备注:

在最后一组测试数据中:如果s中一开始就就包含了"LOL",是Bob胜利。
Alice 先手,不应该是Alice胜利吗?
发表于 2025-12-23 20:49:21 回复(0)