题目描述
Yuki 有一棵仅包含根结点 1 的有根树 T 和一个变量 n,初始时 n=1。
给定 q 次操作。操作有以下 2 种:
-
1 ui xi:在 ui 的第 xi 个儿子后插入结点 n+1;特殊地,若 xi=0,则表示将结点 n+1 作为 ui 的第 1 个儿子插入。ui 的其余儿子的相对顺序不变。设 ui 的儿子个数为 sui,则保证 1≤ui≤n 且 0≤xi≤sui。在执行此操作后 n 的值变为 n+1。
-
2 vi ki:查询对树 T 进行 ki 次左儿子右兄弟变换后结点 vi 的父亲结点。其中,左儿子右兄弟变换指:对于树 T 上的结点 u,将结点 u 在原树中的第一个儿子作为结点 u 在新树上的左儿子,将结点 u 在原树中的下一个兄弟作为结点 u 在新树上的右儿子。保证 2≤vi≤n 且 1≤ki≤109。注意,此操作不会真的对树 T 进行 ki 次左儿子右兄弟变换,也就是说在执行此操作后树形态不变。
你需要对于每个 2 操作求出答案。
输入格式
本题有多组测试数据。
输入的第一行包含两个正整数 c,T,分别表示测试点编号和测试数据组数。样例满足 c=0。
接下来依次输入每组测试数据。对于每组测试数据:
- 第一行一个正整数 q。
- 接下来 q 行,第 i 行三个整数 oi,ui,xi 或 oi,vi,ki,格式同题目描述。
输出格式
对于每组测试数据中的每个 2 操作,输出一行一个整数表示答案。
0 2
8
1 1 0
1 2 0
2 3 1
1 3 0
1 1 0
1 4 0
1 4 1
2 7 1
8
1 1 0
2 2 2
2 2 2
1 2 0
2 3 1
1 3 0
1 4 0
2 4 3
2
6
1
1
2
3
提示
样例 1 解释
该样例包含两组测试数据,对于第一组测试数据:
-
第 1 次操作插入结点 2 作为结点 1 的儿子结点。
-
第 2 次操作插入结点 3 作为结点 2 的儿子结点。
-
此时树包含 2 条边 (1,2),(2,3),经过 1 次左儿子右兄弟变换后,树仍为 (1,2),(2,3),3 的父亲结点为 2。
-
接下来进行 4 次结点插入操作,操作结束后的树形如:

-
经过 1 次左儿子有兄弟变换后,树形如:

此时结点 7 的父亲结点为 6。
数据范围
对于所有测试数据,保证:
- 1≤T≤3;
- 1≤q≤106;
- oi∈{1,2},1≤ui≤n,0≤xi≤sui,2≤vi≤n,1≤ki≤109。
测试点编号 |
q≤ |
ki |
特殊性质 |
1∼3 |
102 |
≤102 |
无 |
4,5 |
3×103 |
=1 |
6,7 |
=109 |
8∼10 |
≤109 |
11,12 |
5×105 |
=1 |
13,14 |
=109 |
15 |
≤109 |
A |
16,17 |
B |
18,19 |
C |
20∼22 |
无 |
23∼25 |
106 |
- 特殊性质 A:对于所有 1 操作,均有 ui=1。
- 特殊性质 B:对于所有满足 1≤i<j≤q 的正整数 i,j,均有 opi≤opj。
- 特殊性质 C:对于所有 1 操作,均有 xi=cntui。