C. 植树(tree)

    Type: Default File IO: tree 1000ms 512MiB

植树(tree)

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

附加文件

题目描述

五个代表甲乙丙丁戊在种一棵树。 已知这棵树由 nn 个点组成,每个点有权重 wiw_i,以及到树根的距离 did_i。规定 d1=0d_1=0

  • 甲说:“我厌恶点对 (i,j)(i,j) 满足 iijj 的祖先且 wi>wjw_i > w_j
  • 乙说:“我厌恶点对 (i,j)(i,j) 满足 iijj 的祖先且 wi<wjw_i < w_j
  • 丙说:“我厌恶点对 (i,j)(i,j) 满足 i<ji < ji,ji,j 均不是另一个点的祖先”
  • 丁说:“我厌恶点距离根太远”
  • 什么都没说

现在甲丙丁选择点集 AA,乙戊选择 AA 的补集 BB

规定点集 XX 的厌恶值为 D(X)D(X),二元运算 xyx \circ y 表示 xx 是否被 yy 所厌恶,则有:

$$D(A) = \sum_{i \in A} \sum_{j \in A} [(i, j) \circ \text{甲} \lor (i, j) \circ \text{丙}] + \sum_{i \in A} d_i$$$$D(B) = \sum_{i \in B} \sum_{j \in B} [(i, j) \circ \text{乙}]$$

现在要你对于 B=0,1,,n|B|=0, 1, \dots, n 依次输出 D(A)+D(B)D(A)+D(B) 的最小值。

输入格式

第一行为一个整数 nn,表示点数。

第二行几个整数 wiw_i,表示每个树节点的权重。

接下来 n1n-1 行每行两个整数 u,vu,v 表示一条树边。

输出格式

n+1n+1 行,第 ii 行一个整数,表示当 B=i1|B|=i-1D(A)+D(B)D(A)+D(B) 的最小值。

样例

样例输入 1

4
4 1 2 3
1 2
2 3
2 4

样例输出 1

9
5
2
1
2

数据范围与约定

对于 100%100\% 的数据范围,1n,wi5×1051\le n,w_i\le 5\times 10^5

每个测试包的详细限制如下:

测试包编号 nn 特殊性质 分值
1 20\le 20 12
2 100\le 100 3
3 5000\le 5000 6
4 5×105\le 5 \times 10^5 di=[i>1]d_i=[i>1] 10
5 wi=1w_i=1 12
6 di=i1d_i=i-1 14
7 43