P13481 [GCJ 2008 AMER SemiFinal] King

题目描述

Alice 和 Bob 想玩一个游戏。游戏在一个有 $R$ 行 $C$ 列的棋盘上进行,总共有 $RC$ 个格子。其中一些格子已经被烧毁。 一枚国王会被放置在棋盘上的某个未烧毁的格子上,Alice 和 Bob 轮流移动国王。 每次移动时,玩家必须将国王移动到其 8 个相邻格子中的任意一个,但需满足以下两个条件: - 目标格子不能是烧毁的格子; - 国王之前从未到过目标格子。 如果某个玩家无法移动,则该玩家输掉游戏。Alice 先手。假设双方都采取最优策略,请你判断谁会获胜。

输入格式

输入的第一行包含测试用例的数量 $N$。 接下来有 $N$ 组测试数据。每组测试数据的第一行包含两个整数 $R$ 和 $C$。接下来的 $R$ 行,每行是一个长度为 $C$ 的字符串,表示该行的 $C$ 个格子。每个字符串只包含字符 '.'、'#' 和 'K': - '#' 表示该格子已被烧毁; - '.' 表示该格子未被烧毁且未被占据; - 'K' 表示国王初始所在的格子。 每个测试用例中只会有一个 'K' 字符。

输出格式

对于每个测试用例,输出一行,格式为 "Case #$X$: "(其中 $X$ 是测试用例编号,从 1 开始),后接 A(如果 Alice 获胜)或 B(如果 Bob 获胜)。

说明/提示

**数据范围** - $1 \leqslant N \leqslant 100$ **小数据范围(7 分,测试点 1 - 可见)** - 时间限制:~~30~~ 3 秒。 - $1 \leqslant R, C \leqslant 4$ **大数据范围(38 分,测试点 2 - 隐藏)** - 时间限制:~~180~~ 36 秒。 - $1 \leqslant R, C \leqslant 15$ 由 ChatGPT 4.1 翻译