#P11528. [2024省队模拟]邻域数点

[2024省队模拟]邻域数点

题目背景

YY 不喜欢 toptreetoptree

题目描述

有一个 nn 个点的树 T(r)=(V,E)T(r)=(V,E),其中 VVTT 的点集, EETT 的边集,点的编号依次为 1,2,3,4,n1,2,3,4,……,n,根节点为 RootRoot ,记 x x 节点的深度 D(x)D(x) 表示节点 xxRootRoot 的唯一简单路径的边的条数。

对于一个非空点集 SVS\subseteq V ,我们可以对 SS 进行 任意次数 如下操作,称为拓展

  • 选择 xS,ySx\in S,y\in S ,然后把 xxyy 的唯一简单路径上的所有点加入 SS

如果对于某一个由拓展得到的 SS',其无法再通过拓展得到别的点集,我们就称 SS' 是最初的点集 SS完备邻域,记作 N(S)=SN(S)=S' ,可证明 N(S)N(S) 是存在且唯一的。

R(S)R(S) 代表所有 xN(S)x\in N(S)xx 中,D(x)D(x) 最小的 xx 的编号。

现在给定一个排列 p1,p2,pnp_1,p_2……,p_n,请你对于 Root=1nRoot=1\to n,求出 :

$$\sum_{1\leq l\leq r\le n}R(\{p_l,p_{l+1}……p_{r-1},p_r\}) $$

输入格式

第一行一个正整数 nn

接下来 n1n-1 行,每行两个整数 x,yx,y,代表一条树上的边 (x,y)E(x,y)\in E

接下来一个长度为 nn 的排列代表 pnp_n

输出格式

一共 nn 个数,第 ii 个数代表 Root=iRoot=i 时的答案。

输入样例

5
1 3
5 1
4 3
4 2
1 3 4 5 2

输出样例

27
46
45
54
55

数据规模

  • 15%15\%1n5001\leq n\leq 500

  • 15%15\%1n20001\leq n\leq 2000

  • 20%20\%1n90001\leq n\leq 9000

  • 20%20\%xi=i,yi=i+1x_i=i,y_i=i+1

  • 20%20\% 1n1×1051\leq n\leq 1\times 10^5

100%100\%1n3×1051\leq n\leq 3\times 10^5

弹跳(jump)