309447: CF1680B. Robots

Memory Limit:512 MB Time Limit:2 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

Robots

题意翻译

有一个平面被分成了 $n$ 行 $m$ 列 $(0\le n, m\le5)$,其中有一些格子是空的(用 E 来表示),其他格子包含了机器人(用 R 来表示)。 你可以让所有的机器人同时做以下这些事: - 上移 - 下移 - 左移 - 右移 当你下达一个指令时,所有的机器人都会同时向你指定的方向走一格。如果一个机器人尝试走出这个平面,那么它就会爆炸;否则,所有的机器人都会移动到所指定方向的相邻格子。 你可以下达任意数量、任意顺序的指令(可能是 $0$)。你的目标是使得至少一个机器人达到了左上角格子,并且所有机器人不爆炸。 共有 $t (1\le t\le 5000)$ 个测试点,如果可以,那么输出 YES,否则输出 NO。

题目描述

There is a field divided into $ n $ rows and $ m $ columns. Some cells are empty (denoted as E), other cells contain robots (denoted as R). You can send a command to all robots at the same time. The command can be of one of the four types: - move up; - move right; - move down; - move left. When you send a command, all robots at the same time attempt to take one step in the direction you picked. If a robot tries to move outside the field, it explodes; otherwise, every robot moves to an adjacent cell in the chosen direction. You can send as many commands as you want (possibly, zero), in any order. Your goal is to make at least one robot reach the upper left corner of the field. Can you do this without forcing any of the robots to explode?

输入输出格式

输入格式


The first line contains one integer $ t $ ( $ 1 \le t \le 5000 $ ) — the number of test cases. Each test case starts with a line containing two integers $ n $ and $ m $ ( $ 1 \le n, m \le 5 $ ) — the number of rows and the number of columns, respectively. Then $ n $ lines follow; each of them contains a string of $ m $ characters. Each character is either E (empty cell} or R (robot). Additional constraint on the input: in each test case, there is at least one robot on the field.

输出格式


If it is possible to make at least one robot reach the upper left corner of the field so that no robot explodes, print YES. Otherwise, print NO.

输入输出样例

输入样例 #1

6
1 3
ERR
2 2
ER
RE
2 2
ER
ER
1 1
R
4 3
EEE
EEE
ERR
EER
3 3
EEE
EER
REE

输出样例 #1

YES
NO
YES
YES
YES
NO

说明

Explanations for test cases of the example: 1. in the first test case, it is enough to send a command to move left. 2. in the second test case, if you try to send any command, at least one robot explodes. 3. in the third test case, it is enough to send a command to move left. 4. in the fourth test case, there is already a robot in the upper left corner. 5. in the fifth test case, the sequence "move up, move left, move up" leads one robot to the upper left corner; 6. in the sixth test case, if you try to move any robot to the upper left corner, at least one other robot explodes.

Input

题意翻译

有一个平面被分成了 $n$ 行 $m$ 列 $(0\le n, m\le5)$,其中有一些格子是空的(用 E 来表示),其他格子包含了机器人(用 R 来表示)。 你可以让所有的机器人同时做以下这些事: - 上移 - 下移 - 左移 - 右移 当你下达一个指令时,所有的机器人都会同时向你指定的方向走一格。如果一个机器人尝试走出这个平面,那么它就会爆炸;否则,所有的机器人都会移动到所指定方向的相邻格子。 你可以下达任意数量、任意顺序的指令(可能是 $0$)。你的目标是使得至少一个机器人达到了左上角格子,并且所有机器人不爆炸。 共有 $t (1\le t\le 5000)$ 个测试点,如果可以,那么输出 YES,否则输出 NO。

Output

**题意翻译**

平面被划分为 $n$ 行 $m$ 列 $(0\le n, m\le5)$,部分格子为空(用 E 表示),其他格子含有机器人(用 R 表示)。

可以同时对所有机器人下达以下指令:

- 上移
- 下移
- 左移
- 右移

当指令下达时,所有机器人会同时向指定方向移动一格。如果机器人尝试离开平面,则会爆炸;否则,所有机器人将移动到指定方向的相邻格子。

可以下达任意数量和顺序的指令(可能是 $0$)。目标是使至少一个机器人到达左上角格子,同时避免所有机器人爆炸。

共有 $t (1\le t\le 5000)$ 个测试点,如果可以达成目标,输出 YES,否则输出 NO。

**输入输出格式**

**输入格式**

第一行包含一个整数 $t$($1 \le t \le 5000$)——测试用例的数量。

每个测试用例以包含两个整数 $n$ 和 $m$($1 \le n, m \le 5$)的行开始,分别表示行数和列数。接下来是 $n$ 行,每行包含一个由 $m$ 个字符组成的字符串。每个字符要么是 E(空格子),要么是 R(机器人)。

对输入的附加限制:每个测试用例中,场上至少有一个机器人。

**输出格式**

如果可以使至少一个机器人到达左上角格子且没有机器人爆炸,打印 YES。否则,打印 NO。

**输入输出样例**

**输入样例 #1**

```
6
1 3
ERR
2 2
ER
RE
2 2
ER
ER
1 1
R
4 3
EEE
EEE
ERR
EER
3 3
EEE
EER
REE
```

**输出样例 #1**

```
YES
NO
YES
YES
YES
NO
```

**说明**

对示例测试用例的解释:

1. 在第一个测试用例中,只需发送一个向左移动的命令。
2. 在第二个测试用例中,如果你尝试发送任何命令,至少有一个机器人会爆炸。
3. 在第三个测试用例中,只需发送一个向左移动的命令。
4. 在第四个测试用例中,左上角已经有一个机器人。
5. 在第五个测试用例中,命令序列 "上移,左移,上移" 使得一个机器人到达左上角;
6. 在第六个测试用例中,如果你尝试移动任何机器人到左上角,至少有一个其他机器人会爆炸。**题意翻译** 平面被划分为 $n$ 行 $m$ 列 $(0\le n, m\le5)$,部分格子为空(用 E 表示),其他格子含有机器人(用 R 表示)。 可以同时对所有机器人下达以下指令: - 上移 - 下移 - 左移 - 右移 当指令下达时,所有机器人会同时向指定方向移动一格。如果机器人尝试离开平面,则会爆炸;否则,所有机器人将移动到指定方向的相邻格子。 可以下达任意数量和顺序的指令(可能是 $0$)。目标是使至少一个机器人到达左上角格子,同时避免所有机器人爆炸。 共有 $t (1\le t\le 5000)$ 个测试点,如果可以达成目标,输出 YES,否则输出 NO。 **输入输出格式** **输入格式** 第一行包含一个整数 $t$($1 \le t \le 5000$)——测试用例的数量。 每个测试用例以包含两个整数 $n$ 和 $m$($1 \le n, m \le 5$)的行开始,分别表示行数和列数。接下来是 $n$ 行,每行包含一个由 $m$ 个字符组成的字符串。每个字符要么是 E(空格子),要么是 R(机器人)。 对输入的附加限制:每个测试用例中,场上至少有一个机器人。 **输出格式** 如果可以使至少一个机器人到达左上角格子且没有机器人爆炸,打印 YES。否则,打印 NO。 **输入输出样例** **输入样例 #1** ``` 6 1 3 ERR 2 2 ER RE 2 2 ER ER 1 1 R 4 3 EEE EEE ERR EER 3 3 EEE EER REE ``` **输出样例 #1** ``` YES NO YES YES YES NO ``` **说明** 对示例测试用例的解释: 1. 在第一个测试用例中,只需发送一个向左移动的命令。 2. 在第二个测试用例中,如果你尝试发送任何命令,至少有一个机器人会爆炸。 3. 在第三个测试用例中,只需发送一个向左移动的命令。 4. 在第四个测试用例中,左上角已经有一个机器人。 5. 在第五个测试用例中,命令序列 "上移,左移,上移" 使得一个机器人到达左上角; 6. 在第六个测试用例中,如果你尝试移动任何机器人到左上角,至少有一个其他机器人会爆炸。

加入题单

上一题 下一题 算法标签: