#P11113. [ROI 2024 Day 1] 2026
[ROI 2024 Day 1] 2026
题目背景
翻译自 ROI 2024 D1T2。
一款新的游戏《2026》在一个 行 列的矩形盘面上进行。盘面被划分为 个 的小格子。在一些格子上放置了大小为 的方块,每个方块上写有一个英文字母。
你需要进行 次操作,每次操作都是将所有方块向一个方向移动到底。因此,操作序列由一个长度为 的字符串 给出,字符串中每个字符表示一个方向:L
表示向左移,R
表示向右移,U
表示向上移,D
表示向下移。
具体操作与游戏《2048》相类似:在棋盘上,只要有一个方块在指定方向上相邻的格子是空的,该方块就会移动到该空格子上,包括它后面的那些方块也会连带着向那个方向一起移动,直到前方没有空格。
题目描述
给出棋盘的初始状态和操作序列,请确定所有操作执行完成后盘面的状态。
输入格式
输入包含多组数据。
- 第一行输入一个整数 ,表示测试数据的组数()。
- 对于每组数据:
- 第一行输入整数 和 ,代表盘面的大小(,)。
- 接下来的 行,输入盘面的初始状态:
- 其中的第 行()包含一个长度为 的字符串 ,表示第 行的盘面状态。
- 每个字符 要么是小写英文字母(从
a
到z
),要么是点号.
。如果 是.
,则表示第 行第 列的格子为空,否则表示该格子上有一个标有字母 的方块。
- 最后一行输入一个字符串 ,由 个字符组成,表示操作的序列()。每个字符都是
L
,R
,U
,D
之一。
所有测试数据中 的总和不超过 , 的总和不超过 。
输出格式
对于每组数据,输出执行完所有操作后的盘面,格式与输入相同。
4
4 4
.a.b
..e.
....
.cd.
LRU
1 1
.
UULLRRDD
1 6
.a.aa.
LLURDDD
5 7
.ba.b..
ac..c.d
e......
....da.
d.eae..
DLDDRULRRR
..ab
..ce
...d
....
.
...aaa
dceebab
...aeac
.....ad
......d
.......
提示
样例解释:
在第一组输入数据中,盘面最初看起来是这样的:
第一次操作将所有方块向左移动。接着,盘面会变成这样:
第二次操作将所有方块向右移动。接着,盘面会变成这样:
第三次,也是最后一次操作将所有方块向上移动。所有操作结束后,盘面会变成这样:
子任务 | 分值 | 特殊性质 |
---|---|---|
只可能为 L 或 R |
||
只可能为 L 或 R 或 U |
||
棋盘上所有字母都是 a , |
||
棋盘上所有字母都是 a |
||
棋盘初始状态是“阶梯状”的,具体地,第 行仅最左侧恰有 个字母 | ||
是重复若干次的 LURD |
||
无 |