P14554 [ROI 2013 Day1] 图形编辑器

题目描述

一位年轻的信息学学生正在学习使用新的图形编辑器“变色龙”。这个编辑器具有不同寻常的简洁性。它只支持两种颜色——黑色和白色,以及一种工具——“变色龙”。 编辑器的区域是一个 $N \times N$ 个单元格的正方形。其中一个单元格上有一个变色龙光标。可以在区域内向四个方向移动它——向上、向下、向右或向左,每次移动恰好一个单元格。光标的颜色必须始终与其所在单元格的颜色一致。为此,当它移动到另一个颜色的单元格时,必须发生以下两个事件之一:要么光标将其颜色更改为该单元格的颜色,要么相反——单元格将其颜色更改为光标的颜色。例如,如果光标从黑色单元格移动到白色单元格,那么它要么必须变为白色,要么它现在所在的白色单元格必须变为黑色。如果单元格和光标颜色相同,则它们的颜色不会改变。 :::align{center} ![](https://cdn.luogu.com.cn/upload/image_hosting/68j0tu8p.png) ::: 初始时光标为黑色,并位于区域的左上角单元格。该单元格也被涂成黑色。区域的所有其他单元格都被涂成白色。 需要编写一个程序,确定变色龙光标的操作序列,执行后将在区域上得到输入数据中给定的图片。

输入格式

输入文件的第一行给定数字 $N$($5 \leqslant N \leqslant 100$)——区域的尺寸。 接下来的 $N$ 行描述了需要得到的图片。描述图片的每行长度为 $N$,由字符 `W`(如果对应单元格为白色)和 `B`(如果为黑色)组成。 文件的最后一行包含测试编号。

输出格式

输出文件应包含一行,描述所需的操作序列。 为表示向左、向上、向右或向下移动并改变**光标颜色**,应分别使用字母 `l`、`u`、`r` 或 `d`。为表示向左、向上、向右或向下移动并改变**单元格颜色**,应分别使用字母 `L`、`U`、`R` 或 `D`。如果光标移动到与其颜色相同的单元格,可以使用大写或小写字母。

说明/提示

在此问题中,测试数据对参赛者可用。它们位于题目附件中。 测试根据文件名编号,从 $0$ 到 $20$。示例中的测试编号为 $0$,用于初步检查。编号从 $1$ 到 $20$ 的测试用于最终检查。 此任务的最终检查在一组 $20$ 个测试上进行。每个测试分值为 $5$ 分。测试独立评分。 如果输出的序列包含不超过 $5,000,000$ 个操作并产生正确结果,则测试被视为通过。 前 $10$ 个测试如果通过,则得 $5$ 分。 剩余 $10$ 个测试的评分如下。如果测试通过: - 得 $5$ 分,如果答案包含不超过 $3 N^2$ 个操作; - 得 $4$ 分,如果答案包含不超过 $5 N^2$ 个操作; - 得 $3$ 分,如果答案包含不超过 $10 N^2$ 个操作; - 得 $2$ 分,如果答案包含不超过 $2.5 N^3$ 个操作; - 得 $1$ 分,如果答案包含不超过 $5,000,000$ 个操作。