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 自动生成**