#P11864. 「o.OI R1」α+β Problem
「o.OI R1」α+β Problem
题目背景
机器人小 喜欢做游戏,机器人小 喜欢玩游戏。
题目描述
现在,它们正在玩一个叫作推箱子的游戏!
机器人小 为关卡制定了一个用字符串表示的移动路径:
字符 | 含义 |
---|---|
W |
让机器人前进一格 |
S |
让机器人后退一格 |
A |
让机器人左转 |
D |
让机器人右转 |
身为机器人小 ,你需要构造一个 的地图:
字符 | 含义 |
---|---|
| |
机器人无法穿过的墙壁 |
X |
机器人最开始在的位置 |
S |
箱子最开始所在的位置 |
. |
空地 |
注意每个位置的东西只能是以上四种之一。
机器人的初始位置是给定的,方向朝上,地图外都是墙。
小 完成移动后,所有箱子都必须移动过,小 需要让这个地图的箱子数最多,且小 每步操作都合法。
以下给出所有不合法的操作:
操作 | 不合法情况 |
---|---|
W |
机器人前方是墙 |
机器人前方两格都是箱子 | |
机器人前方两格分别是箱子和墙 | |
S |
机器人后方是箱子或墙 |
小 需要一份程序来完成这份工作。
输入格式
本题有多组数据。
第一行一个正整数 表示数据组数。
对于每组数据:
- 第一行两个整数 。
- 第二行三个整数 。
- 第三行一个长度为 的字符串 。
输入的数据含义如下:
- 和 代表需要构造的地图的大小为 行 列。
- 和 代表机器人的初始位置在从上往下第 行从左往右第 列。
- 代表移动路径的长度, 代表移动路径。
本题数据量较大,请使用较快的读写方式。
输出格式
对于每组数据,你需要给出一个 的地图代表你构造的地图,格式如题目描述所述。
所有最优的答案都可以得分。
提示
部分样例有其他正确答案。
「数据范围」
本题开启 Special Judge 与捆绑测试。
一个测试点内,如果对于每组数据你的箱子数是最多的,且方案合法,你才能获得该测试点的分数。
只有通过一个子任务内的所有测试点才能得到该子任务的分数。
对于所有测试数据,保证:
- ,。
- ,。
- 。
- 。
- 小 的移动在空旷地图下一定合法。
子任务 | 特殊性质 | 分值 | |||
---|---|---|---|---|---|
无 | |||||
A | |||||
无 | |||||
B | |||||
C | |||||
无 |
- 特殊性质 A:前进和后退的总次数不超过 次,且 。
- 特殊性质 B:,且只会朝两个方向前进。
- 特殊性质 C:可放箱子的最大数量为 或 。
尽管比赛中不会返回,我们仍将告诉你 Special Judge 会返回的对应信息,优先级递减。
Error: 1
:出现规定以外的字符。Error: 2
:出生点不在正确的位置。Error: 3
:机器人无法前进。Error: 4
:机器人无法后退。Error: 5
:有箱子没有被推动过。Error: 6
:箱子数不是最多的。Correct
:测试点通过。