题目背景
译自 COCI 2024/2025 #3 T4。2s,0.5G。满分为 120。
题目描述
给定 n 个节点的有根树,根节点为 1。点 i 的点权为 vi。
定义函数
f(y)=x∈subtree(y)∑dist(x,y)⋅vx其中,subtree(y) 表示 y 的子树内所有点构成的集合(包括 y),dist(x,y) 表示 x,y 之间的最短路径上的边数。换言之,f(y) 是 y 子树内所有点的点权乘以到 y 的距离求和。
有 q 次操作,每次操作给定两个节点 x,y。在一次操作中:
- 将 x 的所有儿子接到 x 的父亲上;
- 将 x 删掉;
- 令 y 的儿子中,包含 x 的为 z。将 x 插入到 y 和 z 之间。
- 求出 f(y)。
保证 x∈subtree(y),且 x=y。特别地,若 y 是 x 的父亲,则原树的形态保持不变。
需要注意的是,操作之间相互独立。也就是说,每次操作都是在初始形态的树上操作(而不是在上一次操作的基础上操作)。
输入格式
第一行,两个正整数 n,q。
第二行,n 个正整数 v1,v2,⋯,vn。
第三行,(n−1) 个正整数 p2,⋯,pn,其中 pi 表示 i 号节点的父亲。
接下来 q 行,每行两个正整数 x,y,描述一次操作。
输出格式
输出 q 行,每行一个正整数,表示答案。
提示
样例解释
样例 1 中,操作后,有 dist(1,3)=1,dist(1,2)=2。所求为 3+2⋅2=7。
数据范围
对于 100% 的数据,保证:
- 1≤n,q≤5×105;
- 1≤vi≤106;
- 1≤pi<i;
- 1≤x,y∈n;
- x=y,x∈subtree(y)。
子任务编号 |
n,q≤ |
特殊性质 |
得分 |
1 |
103 |
|
21 |
2 |
5×105 |
A |
37 |
3 |
B |
22 |
4 |
|
40 |
- 特殊性质 A:树的形态是链。换言之,pi=i−1。
- 特殊性质 B:每个节点最多有 20 个儿子。