C. 积木塔

    Type: Default File IO: block 1000ms 256MiB

积木塔

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目描述

小 F 搭建了一个 NNMM 列的积木塔,每个格子上有一个数字,数字相同的格子属于同一块积木。保证属于同一块积木的格子是连通的。

例如下图,是一个 5544 列的积木塔,用不同颜色标识出了不同的积木。一块积木所属的格子上写的数字为这块积木的编号。

小 F 现在想要拆掉这块积木塔。这座积木塔是竖直放置的,行号越小的积木越靠上。一块积木可以被拆除,当且仅当压在其上方的所有积木都被拆除。例如上图,11 号积木不能被拆除,因为它被 22 号积木压住,当 22 号积木被移除后,11 号、55 号积木才可以被移除。

例如上图,想要移除 33 号积木,必须先移除 44 号积木;想要移除 44 号积木,又需要先移除 33 号积木,因此,存在积木塔无法完全移除的可能性。小 F 会持续移除积木,当没有可移除的积木时停止。

小 F 钟爱更小的数,因此,当有多块积木可以移除时,她会优先移除编号更小的积木。

现在,小 F 给出了积木塔的初始状态,请你预测小 F 移除积木的顺序。

输入格式

输入共 N+1N+1 行。

输入的第一行为两个整数 N,MN,M

接下来 NN 行,每行 MM 个整数,第 ii 行第 jj 个数 ai,ja_{i,j} 表示这个格子上所写的数。

按照从上至下的顺序输入积木塔。

输出格式

输出一行若干个整数,每两个数由一个空格隔开,表示按照先后顺序,小 F 移除的积木的编号。

输入输出样例 #1

输入 #1

5 4
1 1 2 2
3 1 1 2
3 3 3 5
4 4 3 5
4 3 3 5

输出 #1

2 1 5

说明/提示

样例 1 解释

样例 1 与试题中提供的例图一致。

子任务

对于全部测试点,保证 1N,M3001 \le N, M \le 3001ai,jN×M1 \le a_{i,j} \le N \times M

对于测试点 121 \sim 2,满足 N=1N=1

对于测试点 343 \sim 4,满足 M=1M=1

对于测试点 585 \sim 8,保证每一块积木都是矩形。

20250406蒙青创CSP-J模拟

Not Attended
Status
Done
Rule
IOI
Problem
4
Start at
2025-4-6 19:35
End at
2025-4-6 21:53
Duration
2.3 hour(s)
Host
Partic.
42