AT_arc219_d [ARC219D] Grid Game
题目描述
有一个 $N \times N$ 的网格。第 $i$ 行从上往下,第 $j$ 列从左往右的格子记作格子 $(i, j)$。格子 $(i, j)$ 初始包含 $A_{i, j}$ 颗石子。
Alice 和 Bob 用这个网格玩如下游戏。
- 由 Alice 先手,两人轮流操作。
- 每一回合,当前玩家选择一个格子,并把其中至少 $1$,至多 $K$ 颗石子一起移动到相邻的上方或左方的格子。具体分为以下几步:
1. 选择一个包含至少 $1$ 颗石子的 $(i, j)$ 格子。不能选择 $(1, 1)$。
2. 设该格子当前有 $c$ 颗石子,选择一个整数 $x$,满足 $1 \le x \le \min(c, K)$。
3. 选择目的地为上方的 $(i-1, j)$(如果存在)或左方的 $(i, j-1)$(如果存在),然后将格子 $(i, j)$ 的 $x$ 颗石子全部取出并移动到目标格子中。
无法进行操作的一方判负。
请判断在两人都采取最优策略的情况下,哪一方会取得胜利。
给出 $T$ 组测试数据,请依次求出每组的答案。
输入格式
输入按如下格式给出:
> $T$ $\text{case}_1$ $\text{case}_2$ $\vdots$ $\text{case}_T$
每组数据格式如下:
> $N$ $K$ $A_{1,1}$ $A_{1,2}$ $\ldots$ $A_{1,N}$ $A_{2,1}$ $A_{2,2}$ $\ldots$ $A_{2,N}$ $\vdots$ $A_{N,1}$ $A_{N,2}$ $\ldots$ $A_{N,N}$
输出格式
按照输入顺序,每组测试数据输出一行答案。
对于每组数据,如果在双方均采取最优策略时 Alice 获胜,则输出 `Alice`;否则输出 `Bob`。
说明/提示
### 样例解释 1
考虑第一组测试数据。
例如,游戏可能按照如下方式进行(注意玩家未必总是采取最优策略):
- Alice 回合:选 $(2, 2)$,拿出 $2$ 颗石子,移动到 $(1, 2)$。
- Bob 回合:选 $(1, 2)$,拿出 $2$ 颗石子,移动到 $(1, 1)$。
- Alice 回合:选 $(2, 1)$,拿出 $2$ 颗石子,移动到 $(1, 1)$。
- Bob 回合:选 $(2, 1)$,拿出 $1$ 颗石子,移动到 $(1, 1)$。
- Alice 回合:选 $(1, 2)$,拿出 $1$ 颗石子,移动到 $(1, 1)$。
- Bob 回合:此时无法行动,Bob 输。
在最优策略下,Alice 总是可以取得胜利。因此本组输出 `Alice`。
### 数据范围
- $1\le T$
- $2\le N\le 100$
- $1\le K\le 10^9$
- $0\le A_{i,j}\le 10^9$
- 所有数据的 $N^2$ 之和不超过 $3\times 10^5$。
- 所有输入值均为整数。
由 ChatGPT 5 翻译