UOJ Logo 蜗牛编程训练题库

JZOJ

#1114. 【usaco2018dec_silver_T3】mooyo

统计
时间限制:1s    空间限制:256MB    输入文件:mooyo.in    输出文件:mooyo.out
当前24小时内您还剩30次提交本题的机会

题目描述

由于手上(更确实的,蹄子上)有大把的空余时间,Farmer John 的农场里的奶牛经常玩电子游戏消磨时光。她们最爱的游戏之一是基于一款流行的电子游戏 Puyo Puyo 的奶牛版;名称当然叫做 Mooyo Mooyo。

Mooyo Mooyo 是在一块又高又窄的棋盘上进行的游戏,高 $N$($1\le N\le 100$)格,宽 $10$ 格。 这是一个 $N=6$ 的棋盘的例子:

0000000000
0000000300
0054000300
1054502230
2211122220
1111111223

每个格子或者是空的(用 $0$ 表示),或者是九种颜色之一的干草捆(用字符 $1\dots 9$ 表示)。重力会使得干草捆下落,所以没有干草捆的下方是 $0$。

如果两个格子水平或垂直方向直接相邻,并且为同一种非 $0$ 颜色,那么这两个格子就属于同一个连通区域。任意时刻出现至少 $K$ 个格子构成的连通区域,其中的干草捆就会全部消失,变为 $0$。如果同时出现多个这样的连通区域,它们同时消失。随后,重力可能会导致干草捆向下落入某个变为 $0$ 的格子。由此形成的新的布局中,又可能出现至少 $K$ 个格子构成的连通区域。若如此,它们同样也会消失(如果又有多个这样的区域,则同时消失),然后重力又会使得剩下的方块下落,这一过程持续进行,直到不存在大小至少为K的连通区域为止。

给定一块 Mooyo Mooyo 棋盘的状态,输出这些过程发生之后最终的棋盘的图案。

输入格式

输入的第一行包含 $N$ 和 $K$($1\le K\le 10N$)。

以下 $N$ 行给出了棋盘的初始状态。

输出格式

输出 $N$ 行,描述最终的棋盘状态。

样例数据

input

6 3
0000000000
0000000300
0054000300
1054502230
2211122220
1111111223

output

0000000000
0000000000
0000000000
0000000000
1054000000
2254500000

说明

在上面的例子中,如果 $K=3$,那么存在一个大小至少为 $K$ 的颜色 $1$ 的连通区域,同样有一个颜色 $2$ 的连通区域。当它们同时被移除之后,棋盘暂时成为了这样:
0000000000
0000000300
0054000300
1054500030
2200000000
0000000003

然后,由于重力效果,干草捆下落形成这样的布局:

0000000000
0000000000
0000000000
0000000000
1054000300
2254500333

再一次地,出现了一个大小至少为 $K$ 地连通区域(颜色 $3$)。移除这个区域就得到了最终的棋盘布局:

0000000000
0000000000
0000000000
0000000000
1054000000
2254500000

数据规模与约定

时间限制:$1 \text {s}$

空间限制:$256 \text {MB}$

解题讨论区

标题 发表者 发表日期