QOJ.ac

QOJ

Time Limit: 2.0 s Memory Limit: 256 MB Total points: 100 Hackable ✓

#15854. Junior Steiner Three

統計

太平洋已经平静太久了。看看那片广阔无垠的水域……真是个自鸣得意的混蛋。跨洲太平洋连接工程(Inter-Continental Pacific Connection)是由熔岩队(Team Magma)牵头的一个项目,旨在为这个世界增添更多壮丽的陆地!

我们将太平洋建模为一个划分为 $r$ 行 $c$ 列的网格。网格中的每个单元格要么是陆地,要么是水域。人类居住在陆地上,这使得陆地很棒;而当他们进入水中时会溺水,这使得水域很糟糕。人类可以在两个陆地单元格之间行走,当且仅当它们共享一条边(仅共享一个角是不够的)。

熔岩队可以支付 100 万比索,将他们选择的任何水域单元格转变为陆地单元格。他们希望改造这个网格,使得从任何一个陆地单元格出发,仅通过行走就能到达其他任何陆地单元格。

在一个完美的世界里,他们只需将整个太平洋变成陆地就能实现这一目标。但这不是一个完美的世界。为了遵守预算限制,请帮助熔岩队找出以最低成本实现目标的方法。

……好吧,也许这个问题太难了。没关系,为了简化问题,我们将其限制在以下特定情况:在给定的网格中,恰好有三个单元格是陆地。

输入格式

第一行包含两个由空格分隔的整数 $r$ 和 $c$。

接下来 $r$ 行,每行包含一个长度为 $c$ 的字符串,表示网格中单元格的状态。

  • . 字符表示对应的单元格是水域
  • # 字符表示对应的单元格是陆地

数据范围

  • $2 \le r, c \le 100$
  • 网格中恰好有三个 # 字符,其余均为 . 字符。

输出格式

输出 $r$ 行,每行包含一个长度为 $c$ 的字符串,对应于你将部分水域单元格转变为陆地后的网格。

如果你的解满足以下所有条件,则会被接受:

  • 输入中的陆地单元格在输出中仍然是陆地单元格
  • 从任何一个陆地单元格出发,都应该能够通过行走到达网格中的任何其他陆地单元格。
  • 在所有满足上述两个要求的解中,你的答案必须使从水域转变为陆地的单元格数量最少。

如果有多个可能的解,输出其中任意一个即可。

样例

输入 1

4 5
.....
..#..
....#
.#...

输出 1

.....
..#..
..###
.##..

输入 2

3 3
..#
.#.
#..

输出 2

.##
##.
#..

输入 3

4 3
..#
.##
...
...

输出 3

..#
.##
...
...

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.