luogu#P4376. [USACO18OPEN] Milking Order G
[USACO18OPEN] Milking Order G
题目描述
Farmer John 的 头奶牛(),编号为 ,最近闲得发慌。因此,她们发展了一个与 Farmer John 每天早上为她们挤牛奶时的排队顺序相关的复杂社会阶层。
经过若干周的研究,Farmer John 对他的奶牛的社会结构总计进行了 次观察()。每个观察结果都是某些奶牛的一个有序序列,表示这些奶牛应该按照序列中的顺序进行挤奶。例如,如果 Farmer John 的一次观察结果是序列 、、,那么 Farmer John 应该在给奶牛 挤奶之前的某个时刻给奶牛 挤奶,并在给奶牛 挤奶之前的某个时刻给奶牛 挤奶。
Farmer John 的观察结果是按优先级排列的,因此他的目标是最大化 的值,使得他的挤奶顺序能够符合前 个观察结果描述的状态。当多种挤奶顺序都能符合前 个状态时,Farmer John 遵循一个长期以来的传统——编号较小的奶牛的地位高于编号较大的奶牛,因此他会最先给编号最小的奶牛挤奶。更正式地说,如果有多个挤奶顺序符合这些状态,Farmer John 会采用字典序最小的那一个。挤奶顺序 的字典序比挤奶顺序 小,如果对于某个 , 对所有 成立,并且 (即这两个挤奶顺序到某个位置之前完全相同,而在该位置上 比 小)。
请帮助 Farmer John 确定给奶牛挤奶的最佳顺序。
输入格式
第一行包含 和 。接下来的 行,每行描述了一个观察结果。第 行描述了观察结果 ,第一个数是观察结果中的奶牛数量 ,后面是一列 个整数,给出这次观察中奶牛的顺序。所有 的总和至多为 。
输出格式
输出 个空格分隔的整数,表示一个 的排列,为 Farmer John 给他的奶牛们挤奶应该采用的顺序。
4 3
3 1 2 3
2 4 2
3 3 4 1
1 4 2 3
提示
在这个例子中,Farmer John 有四头奶牛,他的挤奶顺序应该满足以下规则:奶牛 在奶牛 之前、奶牛 在奶牛 之前(第一个观察结果),奶牛 在奶牛 之前(第二个观察结果),奶牛 在奶牛 之前、奶牛 在奶牛 之前(第三个观察结果)。前两个观察结果可以同时被满足,但 Farmer John 不能同时满足所有规则,因为这会要求奶牛 在奶牛 之前,同时奶牛 在奶牛 之前。
这意味着总共有两种可能的挤奶顺序: 和 ,第一种是字典序较小的。
题目来源:Jay Leeds