QOJ.ac

QOJ

Limite de temps : 3 s Limite de mémoire : 512 MB Points totaux : 100

#13608. Heavy-Light Decomposition

Statistiques

树链剖分(Heavy-Light decomposition)是一种将树剖分为若干条路径的方法,使得从任意节点走到树根的过程中,路径的切换次数为 $O(\log n)$。在本题中,你需要维护一棵二叉树的树链剖分,这棵树的叶子节点会被逐个删除。

考虑一棵拥有 $n$ 个节点的二叉树 $T$,节点编号为 $1$ 到 $n$。每个节点可以有一个左儿子和一个右儿子。编号为 $1$ 的节点是树的根,它不是任何其他节点的儿子。其余每个节点都是某个节点的儿子。没有儿子的节点被称为叶子。对于每个节点,该节点的大小(size)是指其子树中的节点个数。

如果从节点 $u$ 指向其儿子 $v$ 的边满足:$v$ 的大小大于 $u$ 的另一个儿子 $w$ 的大小,或者 $v$ 是 $u$ 的唯一儿子,则称这条边为重边(heavy edge)。如果 $u$ 有两个儿子且它们的大小相同,则在最开始时,从 $u$ 出发的重边指向其左儿子。

首先,你必须找出树中所有的重边,并输出它们所指向的节点编号之和。之后,你必须处理 $m$ 次操作:从树中删除叶子节点 $u_i$,更新所有的重边,并输出当前重边所指向的节点编号之和。如果在删除节点后,某个节点 $u$ 的两个儿子大小相同,则从 $u$ 出发的重边保持不变。

输入格式

输入文件包含多组测试数据。

每组测试数据的第一行包含一个整数 $n$ — 树中的节点数($2 \le n \le 200\,000$)。

接下来的 $n$ 行包含对树的描述。其中第 $i$ 行包含两个整数 $L_i$ 和 $R_i$ — 第 $i$ 个节点的左儿子和右儿子的编号,如果第 $i$ 个节点没有对应的儿子,则为 0。

接下来的一行包含一个整数 $m$ — 要删除的叶子节点数($1 \le m \le n - 1$)。

接下来的一行包含 $m$ 个整数 $u_1, u_2, \dots, u_m$ — 要删除的节点。保证在进行之前的所有删除操作后,节点 $u_i$ 确实是一个叶子节点。

输入以一行 $n = 0$ 结束,该行不需要处理。一个输入文件中所有测试数据的 $n$ 之和不超过 $200\,000$。

输出格式

对于每组测试数据,输出 $m + 1$ 个整数。其中第一个整数必须是初始树中重边所指向的节点编号之和。接下来的每个整数必须是删除对应叶子节点后该和的值。

样例

输入样例 1

8
2 3
4 5
0 0
6 7
0 8
0 0
0 0
0 0
7
6 7 8 5 4 2 3
0

输出样例 1

20
21
15
7
6
2
3
0

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.