CF1680B Robots
题目描述
有一个被划分为 $n$ 行 $m$ 列的场地。某些格子是空的(用 E 表示),其他格子里有机器人(用 R 表示)。
你可以同时向所有机器人发送一条指令。指令有以下四种类型之一:
- 向上移动;
- 向右移动;
- 向下移动;
- 向左移动。
当你发送一条指令时,所有机器人会同时尝试朝你选择的方向移动一步。如果某个机器人试图移出场地边界,它会爆炸;否则,每个机器人会移动到相邻的格子。
你可以按任意顺序发送任意多条指令(也可以一条都不发)。你的目标是让至少一个机器人到达场地的左上角。你能否做到这一点,并且不让任何机器人爆炸?
输入格式
第一行包含一个整数 $t$($1 \le t \le 5000$),表示测试用例的数量。
每个测试用例的第一行包含两个整数 $n$ 和 $m$($1 \le n, m \le 5$),分别表示行数和列数。接下来有 $n$ 行,每行包含一个长度为 $m$ 的字符串。每个字符要么是 E(空格),要么是 R(机器人)。
输入的额外限制:每个测试用例中,场地上至少有一个机器人。
输出格式
如果可以让至少一个机器人到达左上角,并且没有任何机器人爆炸,输出 YES。否则输出 NO。
说明/提示
样例的解释:
1. 在第一个测试用例中,只需发送一条“向左移动”指令即可。
2. 在第二个测试用例中,无论发送什么指令,至少有一个机器人会爆炸。
3. 在第三个测试用例中,只需发送一条“向左移动”指令即可。
4. 在第四个测试用例中,左上角已经有一个机器人。
5. 在第五个测试用例中,依次发送“向上移动”、“向左移动”、“向上移动”三条指令,可以让一个机器人到达左上角。
6. 在第六个测试用例中,无论如何移动机器人到左上角,至少会有另一个机器人爆炸。
由 ChatGPT 4.1 翻译