AT_kupc2020_h Beans on the Grid

题目描述

有一个 $H$ 行 $W$ 列的棋盘。在棋盘的格子中,有些格子上没有盘子,有些格子上则放着盘子。 在放盘子的格子中,有些还放有豆子。每个豆子都是不同的,一个盘子上可以放多个豆子。 Alice 和 Bob 准备在这个棋盘上进行一场游戏,规则如下: - Alice 先手,之后双方轮流进行操作。 - 在每个回合中,玩家需要按照下面的「豆子移动规则」移动一个豆子。如果玩家不能移动任何豆子,那么该玩家立即输掉游戏,对手获胜。 请你判断,当双方都采用最佳策略时,谁将获胜。

输入格式

输入通过标准输入给出,格式如下: > $H$ $W$ $c_{1,1}$ $\cdots$ $c_{1,W}$ $\vdots$ $c_{H,1}$ $\cdots$ $c_{H,W}$ 其中 $c_{i,j}$ 表示棋盘上 $(i,j)$ 格子的状态: - $c_{i,j} = \texttt{\#}$,表示 $(i,j)$ 没有盘子。 - $c_{i,j} = \texttt{.}$,表示 $(i,j)$ 有空盘子。 - $c_{i,j} = \texttt{B}$,表示 $(i,j)$ 上的盘子里有一个豆子。

输出格式

如果 Alice 获胜,输出 `Alice`;如果 Bob 获胜,输出 `Bob`。

说明/提示

### 豆子移动规则 对于棋盘上的坐标 $(i, j)$(1 ≤ i ≤ H, 1 ≤ j ≤ W): 1. 从中选择一个豆子,假设该豆子当前在 $(i, j)$。 2. 根据以下三种方式之一进行移动,须满足所有条件: - 如果 $i + 1 \leq H$,则可以向下移动到 $(i+1, j)$。 - 如果 $j = 1$,则可以水平循环到 $(i, W)$;否则,可以向左移动到 $(i, j-1)$。 - 如果 $j = W$,则可以水平循环到 $(i, 1)$;否则,可以向右移动到 $(i, j+1)$。 3. 移动后的格子必须有盘子。 4. 该豆子从未到达过移动后的格子。 ### 约束条件 - 1 ≤ H, W ≤ 1000 - H, W 是整数。 ### 示例解释 初始时,豆子位于(1,1)。 - Alice 第一个回合只能将豆子移动到(1,2)。 - Bob 第一个回合只能将豆子移动到(2,2)。 - Alice 第二个回合只能将豆子移动到(2,3)。 - Bob 第二个回合无法移动豆子。 因此,Bob 落败,而 Alice 获胜。 **本翻译由 AI 自动生成**