luogu#P11477. [COCI 2024/2025 #3] 林卡树 / Stablo
[COCI 2024/2025 #3] 林卡树 / Stablo
题目背景
译自 COCI 2024/2025 #3 T4。。满分为 。
题目描述
给定 个节点的有根树,根节点为 。点 的点权为 。
定义函数
$$f(y)=\sum_{x\in \operatorname{subtree}(y)} \operatorname{dist}(x,y)\cdot v_x $$其中, 表示 的子树内所有点构成的集合(包括 ), 表示 之间的最短路径上的边数。换言之, 是 子树内所有点的点权乘以到 的距离求和。
有 次操作,每次操作给定两个节点 。在一次操作中:
- 将 的所有儿子接到 的父亲上;
- 将 删掉;
- 令 的儿子中,包含 的为 。将 插入到 和 之间。
- 求出 。
保证 ,且 。特别地,若 是 的父亲,则原树的形态保持不变。
需要注意的是,操作之间相互独立。也就是说,每次操作都是在初始形态的树上操作(而不是在上一次操作的基础上操作)。
输入格式
第一行,两个正整数 。
第二行, 个正整数 。
第三行, 个正整数 ,其中 表示 号节点的父亲。
接下来 行,每行两个正整数 ,描述一次操作。
输出格式
输出 行,每行一个正整数,表示答案。
3 1
1 2 3
1 2
3 1
7
3 2
4 5 6
1 1
2 1
3 1
11
11
5 3
2 5 2 2 2
1 2 3 2
4 3
3 2
5 1
2
8
26
提示
样例解释
样例 中,操作后,有 $\operatorname{dist}(1,3)=1,\operatorname{dist}(1,2)=2$。所求为 。
数据范围
对于 的数据,保证:
- ;
- ;
- ;
- ;
- ,。
子任务编号 | 特殊性质 | 得分 | |
---|---|---|---|
A | |||
B | |||
- 特殊性质 A:树的形态是链。换言之,。
- 特殊性质 B:每个节点最多有 个儿子。