#z1041. 抓兔子
抓兔子
Description
兔子洞里有一只超可爱的兔子……帕格丽希望抓住它! 兔子洞可以被视为一个 n × m 的矩形方格,每个方格可能是空地或 障碍。 帕格丽每次可以向上、下、左、右四个方向中的一个移动一格,但只 能移动到没有障碍物的空地上。 当帕格丽靠近兔子时,兔子就会逃跑。兔子的转向和移动都在一瞬间 完成。但只有帕格丽与兔子相邻时,兔子才会移动。 当帕格丽和兔子相邻时,兔子会立刻转向帕格丽的反方向,并尝试向 前移动一格,如果无法移动(遇到障碍或边界),则按顺时针方向转 动,继续尝试向前移动一格(但不会靠近帕格丽),如果任何方向都 无法移动,则兔子会停在原地不动。 当帕格丽和兔子在同一格子中,即视为抓到兔子。 现在,帕格丽想知道,她是否有可能通过一系列移动最终抓到兔子。
Format
Input
多组输入输出。第一行输入一个整数 T,代表数据组数。 对于每组测试数据: 第一行两个用空格分开的整数 n, m,表示方格的行数和列数。 接下来 n 行,每行一个长度为 m 的仅由 ′. ′, ′#′, ′P′, ′R′ 组成的字符 串,代表方格状态。 ′. ′:表示空地,可以通行 ′#′:表示障碍,不可通行 ′P′:帕格丽的初始位置 ′R′:兔子的初始位置 保证一定存在且仅存在一个 ′P′ 和 ′R′。
Output
对于每组测试数据,输出一行。如果帕格丽可以抓住兔子,输出 Yes; 否则,输出 No。
Samples
5
5 5
#####
#P. R#
#. #. #
#. . . .
#####
4 4
####
#P. #
#R. #
####
10 4
#P. .
#. #.
#. . .
#R##
. . . #
#. . #
#. ##
#. . .
#. #.
#. . .
10 4
#. . .
#. #.
#. . .
#R##
. . . #
#. . .
#. #.
#. . .
#. #.
#. P.
5 5
. . . . #
. ##. .
. #. R.
. ##. .
. . . P#
Yes
No
No
Yes
Yes
样例1说明: (按 1 − index) 在第一组数据中,P 先把 R 赶到 (4, 4),然后 P 从 (4, 3) 就可以 把 R 赶进 (4, 5)。 在第二组数据中,R 会先反应过来跑到 (3, 3),然后 P 和 R 只能绕圈圈。 在第三组数据中,看似 P 可以把 R 赶到 (5, 1),其实不行。P 和 R 还是只能绕圈圈。
Limitation
对于所有测试数据,保证: 1 ≤ T ≤ 1000 2 ≤ n, m ≤ 500 对于每个测试点,满足∑ nm ≤ 500000 对于 20% 的测试数据,满足 2 ≤ n, m ≤ 5 对于另外 20% 的测试数据,满足 2 ≤ n, m ≤ 20 对于另外 40% 的测试数据,满足2 ≤ n, m ≤ 100
1s, 1024KiB for each test case.
相关
在下列比赛中: