#P15447. 「IXOI R1」柚社子

    ID: 15041 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 难度: 8 上传者: 标签>贪心线段树洛谷原创O2优化洛谷月赛

「IXOI R1」柚社子

说明

注:本题输入输出量较大,请选择合适的输入输出方式。

给出一个由 nn 个点构成的有根树森林,第 ii1in1\le i \le n)个点在有根树上的父亲是 xix_i(若 xi=0x_i=0 则表示他是某棵树的根)。

对于每棵树,都会给出一对参数 (la,ra)(l_a,r_a),其中 aa 是这棵树的根。

现在你要选取若干个点,并将点的编号组成一个序列,定义一个合法的序列为:

  • 对于每个满足 xa=0x_a=0 的点 aa,以他为根的树中选取的点的个数在 [la,ra][l_a,r_a] 之间。
  • 对于每一个被选取的点,如果他是根或他的所有祖先中没有点被选,那么没有限制;否则至少有一个他的祖先在序列上的位置在他后面(若这个点在序列的位置为 ii,则存在一个他的祖先在序列的位置为 jj,其中 i<ji<j)。

求所有合法序列中字典序最小的那个。

输入格式

第一行一个正整数 nn,表示点数。

接下来 nn 行,第 i+1i+11in1\le i\le n)行一至三个整数,第一个整数 xix_i,表示点 ii 在森林上的父亲。若 xi=0x_i=0,后面紧跟两个由空格隔开的正整数 [li,ri][l_i,r_i],其意义已在题目描述中给出。

输出格式

输出两行。

第一行一个整数 mm,表示字典序最小的序列长度。

第二行 mm 个由空格隔开的整数,描述字典序最小的序列。

可以证明在题目的限制下,一定是存在至少一个合法序列的。

10
0 2 2
1
10
6
3
0 1 2
5
1
3
1
3
2 1 4 

提示

样例解释

最小的满足条件的字典序是 2,1,42,1,4,长度为 33,可以证明没有字典序更小的方案。

数据范围

本题采用捆绑测试。

子任务编号 nn\le 特殊性质 分值
00 2020 1010
11 5×1035\times 10^3 2020
22 5×1055\times 10^5 A 1010
33 B 3030
44

特殊性质 A:保证每棵树是一个菊花,即每颗树至多有一个点度数超过 11,且所有度数大于 11 的点 ii 均满足 xi=0x_i=0

特殊性质 B:保证 i,li=ri\forall i,l_i=r_i

对于所有数据,保证:

1n5×1051\le n\le 5\times 10^5xi,0xin\forall x_i,0\le x_i\le n,保证对于任意一颗树的 [l,r][l,r] 满足 1lrsz1\le l\le r\le sz,其中 szsz 指对应树的结点数,保证输入的图是一个森林。