QOJ.ac

QOJ

Points totaux : 100 Sortie uniquement

#13450. Watering

Statistiques

Sara 是一位敬业的农民,拥有一块巨大的矩形土地。她的土地被整齐地划分为由 $5R$ 行和 $5C$ 列组成的网格。此外,每隔五行有一条横穿整个板宽的水平栅栏,每隔五列有一条纵贯整个板高的垂直栅栏。这些栅栏将土地分成了 $R \times C$ 个大小为 $5 \times 5$ 的区域,称为田地(fields)。

Sara 面临的两个最常见的问题是鸟类和干旱。为了对付讨厌的吃庄稼的鸟类,一些田地里配备了稻草人。稻草人(如果存在)占用一个单元格,且每个 $5 \times 5$ 的田地中最多只能有一个稻草人。

图 1:Sara 土地的样例布局、其文本表示以及一个有效的洒水器布置

在可能持续数月的干旱期间,Sara 使用洒水器来为她的庄稼浇水。她的每个洒水器都有三个喷头:一个主喷头和两个侧喷头。它恰好占用三个单元格并为它们全部浇水。侧喷头总是恰好占用与主喷头相邻(上、下、左或右)的两个单元格。因此,单个洒水器总是处于以下配置之一:

Sara 希望在她的土地上布置洒水器,使得每个没有被稻草人占用的单元格上都恰好有一个洒水器喷头。含有稻草人的单元格不能放置洒水器喷头。此外,喷头不能放置在 Sara 的土地之外。

由单个洒水器浇水的三个单元格不需要属于同一个 $5 \times 5$ 的田地:它们也可以属于相邻的田地。在这种情况下,Sara 必须在栅栏上打一个孔,位于由同一个洒水器浇水的相邻田地的两个单元格之间。打孔对 Sara 来说很困难:她不想打太多的孔。

任务

给定 Sara 土地的描述,你需要产生一个有效的洒水器配置来为其浇水。如果你成功了,你的得分将取决于需要在栅栏上打孔的总数——详见“评分”部分。

这是一个仅输出(output-only)的任务。你将获得 10 个输入文件,你只需要生成对应的输出文件。你可以从竞赛系统中下载输入文件,页面标签为 'Tasks'。

你需要使用竞赛系统分别提交每个输出文件。提交时,竞赛系统将检查你输出文件的格式。如果格式有效,输出文件将被评分并报告得分;否则,竞赛系统将报告错误。因此,你将获得提交给此任务的输出文件的完整反馈。

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

输入格式

输入的第一行包含两个整数 $R$ 和 $C$ ($1 \le R, C \le 100$) —— 如上所述的 Sara 土地的大小。

接下来的 $6R-1$ 行,每行包含一个长度为 $6C-1$ 的字符序列。它们代表 Sara 的田地以及它们之间的栅栏。尽管栅栏实际上是无限薄的,但栅栏本身也用字符表示。

单个单元格由单个字符表示。点字符 . 表示一个空单元格,而 # 字符(ASCII 35)表示一个稻草人。垂直栅栏用 | 字符(ASCII 124)表示,水平栅栏用 - 字符(减号)表示。+ 字符表示栅栏的交叉点。

输出格式

输出文件应包含与输入文件格式相同的、带有有效洒水器布置的土地文本表示。栅栏上的每个孔都应由下划线字符 _ 表示。输入文件中的所有空单元格(点)都应替换为小写字母 a - z,以便满足以下规则:

  1. 由同一个洒水器浇水的任意三个单元格都用相同的字母表示,即使它们不都在同一个 $5 \times 5$ 的田地中。
  2. 如果同一田地中的两个相邻单元格由不同的洒水器浇水,则它们必须用不同的字母表示。
  3. 如果不同田地中的两个相邻单元格由不同的洒水器浇水,并且它们之间的栅栏上有一个孔,则它们必须用不同的字母表示。
  4. 只要满足之前的所有规则,允许属于不同田地的相邻单元格用相同的字母表示。

评分

每个测试点价值 10 分。如果浇水配置无效,你将在该测试点获得 0 分。如果配置有效,解将按如下方式评分:

  • 如果栅栏中的孔数不大于 $R \times C$,你的得分为 10 分。
  • 否则,你的得分为 5 分。
  • 在 10 个官方测试输入中,有 4 个输入中每个田地都会有一个稻草人。

样例

输入样例 1

2 2
.....|.....
.....|.....
...#.|.....
.....|.....
.....|.....
-----+-----
.....|.....
.....|.....
.....|.....
.....|.....
.....|.....

输出样例 1

aaacc|dxxxa
bbbce|dyyya
ddd#e|dzzza
ccbae|fccbb
cbbaa|ffcdb
-----+---_-
ssrrr|tttdd
saaax_xxeee
yxbbb|zdaaa
yxccc|zdbbb
yxddd|zdccc

ou importez des fichiers un par un

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.