#6046. 「雅礼集训 2017 Day8」爷
题目描述
给你一个 n nn 个点的有根树,1 11 为根,带边权,有 m mm 次操作。
- 求 x xx 的子树中第 k kk 小的深度的值,如果子树中没有 k kk 个点则输出 −1 -1−1;
- 江 x xx 与 x xx 父亲的边权加上 k kk。
保证每次操作 2 的 k kk 以及原树的边权小于等于一个数 len \text{len}len。
如果操作 2 中 x xx 为 1 11,那么视为将 x xx 的基础深度加上了 k kk。
输入格式
第一行三个数 n nn、m mm、len \text{len}len。
之后 n−1 n - 1n−1 行每行两个数表示 2∼n 2 \sim n2∼n 每个点的父亲编号,以及他们到父亲的边权。
之后 m mm 行每行三个数 opt \text{opt}opt、x xx、k kk,opt \text{opt}opt 表示操作种类,x xx、k kk 意义如题所述。
输出格式
对于每个操作 1,输出一个数表示答案。
样例
样例输入
3 5 3
1 3
2 3
1 1 3
2 3 3
1 1 3
2 1 2
1 1 3
样例输出
6
9
11
数据范围与提示
对于 10% 10\%10% 的数据,n,m≤1000 n, m \leq 1000n,m≤1000;
对于 30% 30\%30% 的数据,n,m≤30000 n, m \leq 30000n,m≤30000;
对于 100% 100\%100% 的数据,n,m≤100000,len≤10 n, m \leq 100000, \text{len} \leq 10n,m≤100000,len≤10。
本水题采用捆绑测试,你只有通过该部分分的所有数据才可以得到该部分分的分数。