EscapeTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 216 Accepted Submission(s): 53
Problem Description 给一个 $n\times m$ 大小的迷宫,左上角为 $(1,1)$,右下角为 $(n,m)$。迷宫中的每个 $1\times 1$ 的格子要么是障碍,要么为空。
有 $a$ 个机器人要从迷宫上方走到迷宫下方,其中第 $i$ 个机器人的初始位置为 $(1,p_i)$ 的正上方,不妨记为 $(0,p_i)$,初始运动方向为向下,即 $(1,0)$。
迷宫有 $b$ 个出口,其中第 $i$ 个出口位于 $(n,e_i)$ 的正下方,不妨记为 $(n+1,e_i)$。
现在你想要让这些机器人走出迷宫,但是这些机器人只会沿着当前的运动方向走,不会转弯,所以你需要在迷宫中的某些空格子上设置转弯装置,每个格子上最多只能有一个转弯装置,转弯装置有 ``NW'',``NE'',``SW'',``SE'' 4 种,其中:
"NW'' 装置会把从格子上方走来的机器人的运动方向变成向左,以及把从格子左方走来的机器人的运动方向变成向上,不允许机器人从格子的右方及下方进入。 "NE'' 装置会把从格子上方走来的机器人的运动方向变成向右,以及把从格子右方走来的机器人的运动方向变成向上,不允许机器人从格子的左方及下方进入。 "SW'' 装置会把从格子下方走来的机器人的运动方向变成向左,以及把从格子左方走来的机器人的运动方向变成向下,不允许机器人从格子的右方及上方进入。 "SE'' 装置会把从格子下方走来的机器人的运动方向变成向右,以及把从格子右方走来的机器人的运动方向变成向下,不允许机器人从格子的左方及上方进入。
你想知道,是否存在一种设置转弯装置的方案,使得所有机器人都能在不经过障碍格子以及不非法进入转弯装置的情况下走出迷宫(允许多个机器人经过同一个格子)。能则输出 ``Yes'',不能则输出 ``No''。
Input 输入第一行一个正整数 $T$,表示数据组数。
对于每组数据:
第一行四个正整数 $n, m, a, b$,表示迷宫的大小,机器人个数,出口个数。
接下来 $n$ 行,每行一个长为 $m$ 的 01 字符串 $s_i$,表示迷宫,其中第 $i$ 个字符串的第 $j$ 个字符表示迷宫中 $(i,j)$ 的状态 —— 0 表示为空,1 表示为障碍。
接下来一行 $a$ 个互不相同的正整数 $p_i$,表示机器人的初始位置 $(0,p_i)$。
接下来一行 $b$ 个互不相同的正整数 $e_i$,表示出口的位置 $(n+1,e_i)$。
$1 \le T \le 10$
$1\le n,m \le 100, 1 \le a,b,p_i,e_i \le m$
Output 输出共 $T$ 行,每行一个字符串 ``Yes'' 或者 ``No'',表示对应数据的答案。
Sample Input 2
3 4 2 2
0000
0011
0000
1 4
2 4
3 4 2 2
0000
0011
0000
3 4
2 4
Sample Output
Source
Hint Statistic | Submit | Clarifications | Back
|