#HK4333. 「CEOI2013」灌溉

「CEOI2013」灌溉

题目描述

题目译自 CEOI2013 Day2 T3「Watering

Sara 是一位勤奋的农民,拥有一大片矩形土地。她的土地被整齐地划分成一个由 5×R5 \times R 行和 5×C5 \times C 列组成的网格。此外,每五行后面有一条横向围栏,每五列后面有一条纵向围栏。这些围栏将土地划分为 R×CR \times C5×55 \times 5 的区域,称为田块。

Sara 面临的两个最常见的问题是鸟害和干旱。为了防止烦人的啄食庄稼的鸟类,一些田块配备了稻草人。每个稻草人(如果存在)占据一个单元格,每个 5×55 \times 5 的田块中最多只能有一个稻草人。

图 1:Sara 土地的样例布局、其文本表示及有效的喷灌器安排

在可能持续数月的干旱期间,Sara 使用喷灌器来保持农作物的水分。她的每个喷灌器有三个喷嘴:一个主喷嘴和两个侧喷嘴。每个喷灌器恰好占据三个单元格,并为这三个单元格提供水源。侧喷嘴总是占据与主喷嘴相邻的两个单元格(上下左右)。因此,一个喷灌器总是处于以下配置之一:

Sara 希望在她的土地上布置喷灌器,使得每个未被稻草人占据的单元格上恰好有一个喷灌器。包含稻草人的单元格不得放置喷灌器喷嘴。此外,喷嘴不得放置在 Sara 的土地之外。

单个喷灌器浇灌的三个单元格不必属于同一个 5×55 \times 5 田块:它们也可以属于相邻的田块。在这种情况下,Sara 必须在由同一个喷灌器浇灌的相邻田块之间的围栏上钻一个孔。钻孔对 Sara 来说很困难:她不希望钻太多孔。

根据 Sara 土地的描述,你需要生成一个有效的喷灌器配置来为其浇水。如果成功,你的得分将取决于需要在围栏上钻的孔的总数。

这是一个提交答案题。你将获得 1010 个输入文件,并且只需生成相应的输出文件。

测试数据保证总存在一个解决方案。如果存在多个解决方案,你可以提交任意一个。

输入格式

输入的第一行包含一对整数 RRCC (1R,C100)(1 \leq R, C \leq 100),如上所述,表示 Sara 土地的大小。

接下来有 6×R16 \times R - 1 行,每行包含 6×C16 \times C - 1 个字符。这些字符表示 Sara 的田块及其间的围栏。尽管围栏实际上是无限细的,但它们也用字符表示。

一个单元格由一个字符表示。字符 . 表示空单元格,字符 # 表示稻草人。纵向围栏用字符 | 表示,横向围栏用字符 - 表示。字符 + 表示围栏的交叉点。

输出格式

输出文件应包含田块的文本表示及其有效的喷灌器安排,格式与输入文件相同。每个围栏孔应用下划线字符 _ 表示。所有输入文件中的空单元格(字符 .)应替换为小写字母,并满足以下规则:

  1. 由同一个喷灌器浇灌的任意三个单元格用相同的字母表示,即使它们不全部位于同一个 5×55 \times 5 田块中。
  2. 如果同一田块中相邻的两个单元格由不同的喷灌器浇灌,它们必须用不同的字母表示。
  3. 如果不同田块中相邻的两个单元格由不同的喷灌器浇灌,并且它们之间的围栏有孔,它们必须用不同的字母表示。
  4. 如果相邻的单元格属于不同的田块,但不违反上述规则,可以用相同的字母表示。
2 2
.....|.....
.....|.....
...#.|.....
.....|.....
.....|.....
-----+-----
.....|.....
.....|.....
.....|.....
.....|.....
.....|.....
aaacc|dxxxa
bbbce|dyyya
ddd#e|dzzza
ccbae|fccbb
cbbaa|ffcdb
-----+---_-
ssrrr|tttdd
saaax_xxeee
yxbbb|zdaaa
yxccc|zdbbb
yxddd|zdccc

数据范围与提示

每个测试点分值为 1010。如果方案不合法,该测试点得零分。否则,评分如下:

  • 如果围栏上的孔数不超过 R×CR \times C,则得 1010 分。
  • 否则,得 55 分。

1010 个测试点中,有 44 个测试点中每个田块都有稻草人。