luogu#P4376. [USACO18OPEN] Milking Order G

    ID: 8403 远端评测题 1000ms 125MiB 尝试: 0 已通过: 0 难度: 5 上传者: 标签>2018二分答案USACO排序图的建立建图拓扑排序

[USACO18OPEN] Milking Order G

题目描述

Farmer John 的 NN 头奶牛(1N1051 \leq N \leq 10^5),编号为 1N1 \ldots N,最近闲得发慌。因此,她们发展了一个与 Farmer John 每天早上为她们挤牛奶时的排队顺序相关的复杂社会阶层。

经过若干周的研究,Farmer John 对他的奶牛的社会结构总计进行了 MM 次观察(1M50,0001 \leq M \leq 50,000)。每个观察结果都是某些奶牛的一个有序序列,表示这些奶牛应该按照序列中的顺序进行挤奶。例如,如果 Farmer John 的一次观察结果是序列 225511,那么 Farmer John 应该在给奶牛 55 挤奶之前的某个时刻给奶牛 22 挤奶,并在给奶牛 11 挤奶之前的某个时刻给奶牛 55 挤奶。

Farmer John 的观察结果是按优先级排列的,因此他的目标是最大化 XX 的值,使得他的挤奶顺序能够符合前 XX 个观察结果描述的状态。当多种挤奶顺序都能符合前 XX 个状态时,Farmer John 遵循一个长期以来的传统——编号较小的奶牛的地位高于编号较大的奶牛,因此他会最先给编号最小的奶牛挤奶。更正式地说,如果有多个挤奶顺序符合这些状态,Farmer John 会采用字典序最小的那一个。挤奶顺序 xx 的字典序比挤奶顺序 yy 小,如果对于某个 jjxi=yix_i = y_i 对所有 i<ji < j 成立,并且 xj<yjx_j < y_j(即这两个挤奶顺序到某个位置之前完全相同,而在该位置上 xxyy 小)。

请帮助 Farmer John 确定给奶牛挤奶的最佳顺序。

输入格式

第一行包含 NNMM。接下来的 MM 行,每行描述了一个观察结果。第 i+1i+1 行描述了观察结果 ii,第一个数是观察结果中的奶牛数量 mim_i,后面是一列 mim_i 个整数,给出这次观察中奶牛的顺序。所有 mim_i 的总和至多为 200,000200,000

输出格式

输出 NN 个空格分隔的整数,表示一个 1N1 \ldots N 的排列,为 Farmer John 给他的奶牛们挤奶应该采用的顺序。

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

提示

在这个例子中,Farmer John 有四头奶牛,他的挤奶顺序应该满足以下规则:奶牛 11 在奶牛 22 之前、奶牛 22 在奶牛 33 之前(第一个观察结果),奶牛 44 在奶牛 22 之前(第二个观察结果),奶牛 33 在奶牛 44 之前、奶牛 44 在奶牛 11 之前(第三个观察结果)。前两个观察结果可以同时被满足,但 Farmer John 不能同时满足所有规则,因为这会要求奶牛 11 在奶牛 33 之前,同时奶牛 33 在奶牛 11 之前。

这意味着总共有两种可能的挤奶顺序:1 4 2 31\ 4\ 2\ 34 1 2 34\ 1\ 2\ 3,第一种是字典序较小的。

题目来源:Jay Leeds