QOJ.ac

QOJ

时间限制: 2 s 内存限制: 256 MB 总分: 100 可 Hack ✓

#4788. Gravity

统计

给定一个 $N \times M$ 的二进制矩阵。单元格 $(i, j)$ 如果为空,则包含字符 “.”;如果被碎片占据,则包含字符 “#”。每个由 “#” 字符构成的极大 4-连通分量形成一个不可分割的碎片。在下述过程中,碎片不会以任何方式合并或分裂。属于同一个碎片的所有单元格将以完全相同的方式移动。

碎片开始以相同的速度向地面(矩阵的最后一行)下落。碎片在下落过程中不会发生旋转。每一秒,所有碎片都会尝试向下移动一行。如果这种移动导致碎片越过矩阵的下边界,该碎片将停留在原位。同样,如果这种移动导致碎片与另一个碎片重叠(注意,这种情况仅在后者未移动时发生),则前者也会停留在原位。换句话说,当碎片撞击地面或撞击另一个碎片时,它们会停止下落。

输出所有碎片停止下落后的最终状态。

输入格式

第一行包含两个整数 $N$ 和 $M$ ($1 \le N, M \le 2000$)。

接下来的 $N$ 行描述了该矩阵。每一行包含 $M$ 个字符,均为 “.” 或 “#”。同一行中表示单元格的字符之间没有空格。

输出格式

打印所有碎片停止下落后的结果矩阵。除了包含矩阵尺寸的那一行外,矩阵的打印格式应与输入格式相同。

样例

输入格式 1

10 10
..........
..######..
..#....#..
..#.#..#..
..#..#.#..
..#....#..
..######..
..........
..#....#..
.......#..

输出格式 1

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

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
#572Editorial Open集训队作业 解题报告 by 陈翰文Qingyu2026-01-02 22:28:55 Download

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.