P4356 [CERC2015] Looping Labyrinth

题目描述

一个$n×m$的矩形,其中每格为路或墙,通过将图案平移来获得迷宫。迷宫是一个大小有限的坐标系,其图案在四个方向上重复。 用整数(包括负整数)表示横纵坐标。向下行数增加,向右列数增加,坐标$(0,0)$处称为原点。特别地,图案的左上角在原点,而右下角在坐标$(n-1,m-1)$。 原点是出口,为了从开始逃离迷宫,我们要从不同的起点到达原点,每一步可向上,下,左或右。对于每个起点,确定是否可以逃离迷宫。

输入格式

第一行包含两个整数$n$和$m$($1≤n$,$m≤100$)。 以下每一行包含$m$个字符。“#”表示墙,“.”表示路。 以下的一行包含整数$q$($1≤q≤200000$)表示起点的数量。 以下$q$行每行包含两个整数$r$和$c$($-10^9≤r$,$c≤10^9$),表示每个起点的坐标。 保证原点和所有起点为路。

输出格式

输出$q$行。如果可以从当前起点逃出迷宫,则每行输出$yes$,否则输出$no$。

说明/提示

![](https://cdn.luogu.com.cn/upload/pic/16244.png ) Central Europe Regional Contest 2015 Problem L