AT_bcu30_e スライドパズル

题目描述

你正在玩一个滑块拼图游戏。这个游戏利用一个 $N \times N$ 的正方形棋盘,其中某些格子上可能放置了障碍物,但也有可能完全没有障碍物。棋盘上有一个可以滑动的棋子,它的大小是 $K \times K$。 这个棋子可以在棋盘上不碰到障碍物的地方滑动,且允许向上下左右四个方向进行平行移动,但不能超出棋盘的边界或与障碍物重叠。 你的任务是处理 $Q$ 个查询。对于每个查询,判断从初始位置 $(r_1, c_1)$ 开始,如果能通过滑动将棋子的左上角移到目标位置 $(r_2, c_2)$,则输出 `Yes`,否则输出 `No`。

输入格式

输入的第一行为三个整数,分别表示 $N$、$K$ 和 $Q$。接下来 $N$ 行,每行包含 $N$ 个字符 `.` 或 `#`,描述棋盘布置:`#` 表示该格子有障碍物,`.` 表示没有障碍物。 然后是 $Q$ 个查询,每个查询由四个整数 $r_1$、$c_1$、$r_2$、$c_2$ 描述,表示起始和目标位置。对于每个查询,起始和目标位置的 $K \times K$ 区域内都没有障碍物。

输出格式

对于每个查询输出一行,若能通过滑动到达目标位置输出 `Yes`,否则输出 `No`。

说明/提示

- $1 \leq N \leq 1000$ - $1 \leq K \leq N$ - $1 \leq Q \leq 100000$ - $s_{ij}$ 是 `.` 或 `#` - 起始和目标的 $K \times K$ 区域均无障碍物 在每次查询中,起始和目标位置保证是有效的,即不会有障碍物干扰。 **本翻译由 AI 自动生成**