#D0641. [DAY18]三步必杀

[DAY18]三步必杀

题目描述

给定一棵 NN 个节点的树,节点从 11NN 编号。每个节点 ii 都有一个非负整数权值 WiW_i

我们定义 Dist(u,v)\text{Dist}(u, v) 为节点 uuvv 之间在树上的最短路径上的边数。

对于树上的每一个节点 ii,你需要计算一个值 SiS_i,它表示树上所有到节点 ii 的距离不超过 33 的节点的权值之和

即,你需要计算:

$$S_i = \sum_{j=1}^{N} W_j \cdot [\text{Dist}(i, j) \le 3] $$

其中 [P][P] 是 Iverson 括号,当条件 PP 成立时为 11,否则为 00

请输出所有节点 SiS_i 的值。

输入格式

第一行包含一个正整数 NN,表示树的节点数。

第二行包含 NN 个非负整数,其中第 ii 个数表示节点 ii 的权值 WiW_i

接下来 N1N-1 行,每行包含两个正整数 u,vu, v,表示节点 uuvv 之间有一条边。

输出格式

输出一行 NN 个非负整数,其中第 ii 个数表示节点 ii 的答案 SiS_i。相邻的数字之间用空格隔开。

5
1 2 3 4 5
1 2
2 3
3 4
4 5
10 15 15 15 14

样例解释:

树的结构是 123451-2-3-4-5,节点权值分别为 1,2,3,4,51, 2, 3, 4, 5.

  • S1S_1: 到 11 距离 3\le 3 的节点有 {1,2,3,4}\{1, 2, 3, 4\}S1=W1+W2+W3+W4=1+2+3+4=10S_1 = W_1+W_2+W_3+W_4 = 1+2+3+4 = 10
  • S2S_2: 到 22 距离 3\le 3 的节点有 {1,2,3,4,5}\{1, 2, 3, 4, 5\}S2=1+2+3+4+5=15S_2 = 1+2+3+4+5 = 15
  • S3S_3: 到 33 距离 3\le 3 的节点有 {1,2,3,4,5}\{1, 2, 3, 4, 5\}S3=1+2+3+4+5=15S_3 = 1+2+3+4+5 = 15
  • S4S_4: 到 44 距离 3\le 3 的节点有 {1,2,3,4,5}\{1, 2, 3, 4, 5\}S4=1+2+3+4+5=15S_4 = 1+2+3+4+5 = 15
  • S5S_5: 到 55 距离 3\le 3 的节点有 {2,3,4,5}\{2, 3, 4, 5\}S5=W2+W3+W4+W5=2+3+4+5=14S_5 = W_2+W_3+W_4+W_5 = 2+3+4+5 = 14

数据规模与约定

对于 100%100\% 的数据,1N1051 \le N \le 10^50Wi1090 \le W_i \le 10^9

  • 子任务 1(30 分):1N1001 \le N \le 100
  • 子任务 2(30 分):1N10001 \le N \le 1000
  • 子任务 3(40 分):1N1051 \le N \le 10^5