#Y1250. 树上斐波那契
时间限制2000 ms
内存限制512 MiB
通过率—0 / 0 次提交
题目描述
定义数列第项为,对于任意的大于等于的,有,令。
再给出一个有根树,一共有个节点,从编号,号节点为根,每个点有一个权值,初始的时候都是,现在有种操作:
U X k
更新操作,对于在的子树中的每一个节点(包括),如果它到的距离(即这个点到的唯一简单路径上经过的边数)为,那么将它的权值加上。
Q X Y
询问操作,询问到的简单路径上的所有点的权值之和(包括和),将所求的权值和之后输出。
输入
第行两个用空格隔开的正整数表示节点个数和操作个数。
第行,第行一个数,表示节点在树上的父亲是。
接下来行,每行一个形如"U X k"或"Q X Y"的操作。
输出
对于每一个询问操作,输出一行为对应顺序的询问操作的答案。
输入样例
5 10
1
1
2
2
Q 1 5
U 1 1
Q 1 1
Q 1 2
Q 1 3
Q 1 4
Q 1 5
U 2 2
Q 2 3
Q 4 5
输出样例
0
1
2
2
4
4
4
10
提示
【样例解释】 这是前个更新操作的情况:
|  | ⇒ |  | ⇒ |  |
评测数据说明
本题使用按题意独立构造、以独立程序核对的训练数据及公开样例,共8个测试点,非原站或官方原始数据。总分100分。