#P10361. [PA2024] Łamigłówka 3
[PA2024] Łamigłówka 3
题目背景
PA 2024 4C
题目描述
题目译自 PA 2024 Runda 4 Łamigłówka 3
Bytie 喜欢玩手机游戏。然而让他感到恼火的是游戏中经常有其他游戏的广告,并且其中玩游戏的人表现得非常糟糕,广告这样做的目的是让看广告的人感到沮丧,从而产生玩下去的欲望。Bytie 对其中一个广告印象尤为深刻(你可能也看过)。
由于可以从任何事物中汲取灵感,Bytie 决定在上述游戏的基础上出道题。他将选择一块大小为 的目标图案,游戏在一块 的网格上进行,其中没有任何区域被染色。在一次操作中,他可以选择一行或一列,并将这一行(或列)中的所有方格(注意,这比上面图片中的游戏更自由,因为在上面的游戏中,重复涂色同一单元格时颜色会混合)重新涂成自己选择的颜色。为了使题目更形式化,他还用大写英文字母标注了所有颜色。你能帮他写一个程序,对于他给出的每个网格,给出正确得到目标图案的操作顺序吗?你可以假设输入中最多可以用 步操作得到目标图案。
输入格式
第一行两个整数 和 ,分别表示网格的行数和列数。
接下来 行,每行一个长为 的字符串。字符串由大写字母组成,第 个字符串的第 个字符表示目标图案中第 行第 列单元格的颜色。
保证给定的目标图案可以通过最多 次染色操作得到。
输出格式
输出第一行包含一个整数 ,表示要进行的操作次数。接下来 行描述操作。
为了描述一次操作,首先应输出 R
或者 K
,表示你希望对某行还是某列重新涂色(R
表示对某行重新涂色,K
表示对某列重新涂色)。接下来空一格,输出你希望重新涂色的行或列的编号,行按从上到下的顺序从 到 编号,列按从左到右的顺序从 到 编号。然后再空一格,输出一个大写英文字母,表示你希望对这行或这列重新涂成的颜色。
注意你不需要最小化操作次数——只需要最多操作 次即可。
5 5
AAPAA
APPAA
AAPAA
AAPAA
APPPA
10
R 1 Z
K 4 A
K 2 P
R 5 P
R 4 A
R 3 A
R 1 A
K 5 A
K 3 P
K 1 A
2 3
AAA
PPP
2
R 2 P
R 1 A
提示
假设 P
代表绿色,A
代表黄色,Z
代表蓝色。样例 1 中的操作序列如下图所示: