#P12658. [KOI 2023 Round 1] 格子游戏
[KOI 2023 Round 1] 格子游戏
题目背景
试题来源:https://koi.or.kr/archives/。中文翻译做了少量本土化修改。
按照署名—非商业性使用—相同方式共享 4.0 协议国际版进行授权。
题目描述
韩果和正奥在一个格子状的棋盘上轮流移动棋子进行游戏,韩果先手。不能跳过自己的回合。
棋盘由 行 列构成,部分格子被封锁,不能移动到这些格子上。为方便起见,记从上往下的第 行与从左往右的第 列交汇的格子为 。
棋子每次可以向下移动一格、向右移动一格,或者沿右下方向移动 到 格(即 到 的任意一个方向)。但不能移动出棋盘或进入封锁格子中。如果 ,则不能进行对角线方向的移动。
我们来看看与移动规则相关的几个例子:
假设 ,,,且棋盘上没有封锁的格子。此时位于 的棋子可移动到的格子共有 5 个,如下图用 O 表示。
如果再假设 和 是封锁格子,那么位于 的棋子可移动到的格子变成 3 个,如图所示。
接下来我们再看两个示例:
- 若棋子位于 ,,,,无封锁格子,则可以移动到的格子数为 ,如图所示。
- 若棋子位于 ,,无封锁格子,则可移动到的格子为 个,如图所示。
游戏的目标是将棋子移动到棋盘最右下角的格子,即 。最后一个完成移动的人获胜。假设韩果和正奥都会以最优策略进行游戏。
游戏的胜负与初始位置有关。给出 个初始位置 ,请判断从这些位置开始游戏,谁将获胜。
输入格式
第一行包含三个整数 、 和 ,用空格隔开。
接下来 行,每行一个长度为 的仅包含 #
或 .
的字符串,表示棋盘状态。若为 #
表示该格为封锁格子,.
表示可通行。
然后是一个整数 。
接下来的 行中,每行两个整数 和 ,表示游戏起始位置。
输出格式
对每个起始位置,若韩果(先手)能赢,输出 First
;若正奥(后手)能赢,输出 Second
。每个结果占一行,按输入顺序输出。
2 2 0
.#
..
2
1 1
2 1
Second
First
2 2 1
..
..
1
1 1
First
3 4 0
....
.#..
....
1
3 2
Second
提示
限制条件
- 所有给定值均为整数。
- 不是封锁格子。
- 从任意未封锁格子出发,根据规则都可以到达 。
- 对于每个 :
- ,
- 是未封锁格子,且不等于
子问题
- (5 分)
- (17 分) 且 ,满足 的格子均为封锁格子。
- (25 分)无封锁格子。
- (53 分)无额外限制。
翻译由 ChatGPT-4o 完成