QOJ.ac

QOJ

実行時間制限: 2 s メモリ制限: 1024 MB 満点: 100

#11088. 循环迷宫

統計

迷宫是通过在一个 $n$ 行 $m$ 列的矩形网格模式上进行平铺而得到的。结果是一个无限的网格,该模式在四个方向上重复。

形式上,假设我们用整数(包括负整数)表示无限网格的行和列。行号随着我们向下移动而增加,列号随着我们向右移动而增加。坐标为 $(0, 0)$ 的单元格称为原点。迷宫是通过将该模式(不进行镜像或旋转)复制到每一个左上角行号能被 $n$ 整除且列号能被 $m$ 整除的 $n \times m$ 矩形区域中得到的。特别地,模式的左上角被复制到原点,而右下角被复制到坐标为 $(n-1, m-1)$ 的单元格。

为了从特定的单元格逃离迷宫,我们需要通过一系列空单元格到达原点,每一步可以向上、向下、向左或向右移动。

给定一个模式和一系列可能的起始单元格。对于每个起始单元格,确定是否可以逃离迷宫。

输入格式

第一行包含两个整数 $n$ 和 $m$ ($1 \le n, m \le 100$),分别表示模式的行数和列数。接下来的 $n$ 行,每行包含一个长度恰好为 $m$ 的字符串,描述模式的一行。字符 # 表示被阻挡的单元格,点号 . 表示空单元格。

接下来的一行包含一个整数 $q$ ($1 \le q \le 200,000$),表示起始单元格的数量。接下来的 $q$ 行中,第 $k$ 行包含两个整数 $r$ 和 $c$ ($-10^9 \le r, c \le 10^9$),表示第 $k$ 个起始单元格的行号和列号。

原点和所有起始单元格均为空单元格。

输出格式

输出应包含 $q$ 行。第 $k$ 行应包含单词 yes(如果可以从第 $k$ 个起始单元格逃离迷宫)或 no(否则)。

样例

输入 1

6 9
..#####..
..#...#..
......#..
..#####..
..#......
..#...#..
5
1 4
5 4
1 -5
5 -5
-1000000000 0

输出 1

yes
no
no
yes
yes

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.