路径询问(path)

题目描述

给定一棵带权树,共有 nn 个节点。

树是一张连通且无环的无向图。

ii 条边连接节点 uiu_iviv_i,边权为 wiw_i

现在有 mm 次询问。第 ii 次询问给出一个整数 qiq_i,你需要计算有多少对不同节点 (u,v)(u,v) 满足:

u<vu < v

并且从 uuvv 的简单路径上,所有边权的最大值不超过 qiq_i

换句话说,对于每个询问 qiq_i,要求统计满足下面条件的点对数量:

maxepath(u,v)weqi\max_{e\in path(u,v)} w_e \le q_i

输入格式

第一行包含两个整数 n,mn,m,分别表示树的节点数量和询问数量。

接下来 n1n-1 行,每行包含三个整数 ui,vi,wiu_i,v_i,w_i,表示一条无向边。

最后一行包含 mm 个整数:

q1,q2,,qmq_1,q_2,\ldots,q_m

表示所有询问。

保证给出的边构成一棵树。

输出格式

输出 mm 个整数,表示每次询问的答案。

ii 个输出值应等于第 ii 次询问中,满足路径最大边权不超过 qiq_i 的点对 (u,v)(u,v) 数量。

询问的答案必须按照输入顺序输出。

相邻两个整数之间用一个空格隔开。

输入输出样例 #1

输入 #1

7 5
1 2 1
3 2 3
2 4 1
4 5 2
5 7 4
3 6 2
5 2 3 4 1

输出 #1

21 7 15 21 3

样例解释 #1

共有 77 个节点。

对于询问 q=1q=1,只保留边权不超过 11 的边:

12,241-2,\quad 2-4

此时节点 1,2,41,2,4 可以形成:

(32)=3\binom{3}{2}=3

对点对,所以答案为 33

输入输出样例 #2

输入 #2

1 2
1 2

输出 #2

0 0

样例解释 #2

只有 11 个节点,没有任意一对不同节点。

因此无论询问值是多少,答案都是 00

输入输出样例 #3

输入 #3

3 3
1 2 1
2 3 2
1 3 2

输出 #3

1 3 3

样例解释 #3

这棵树有 33 个节点,边为:

12,231-2,\quad 2-3

边权分别为 1122

对于询问 q=1q=1,只有点对 (1,2)(1,2) 满足条件,答案为 11

数据范围与约定

对于所有测试数据,保证:

$$1 \le n,m \le 2\times 10^5,1 \le w_i \le 2\times 10^5,1 \le q_i \le 2\times 10^5 $$1ui,vin,uivi1 \le u_i,v_i \le n,\quad u_i\ne v_i

保证给出的边构成一棵树。

测试点 分值 nn mm 特殊性质
121\sim 2 1010 20\le 20
353\sim 5 1515 103\le 10^3 A\text{A}
686\sim 8 B\text{B}
9129\sim 12 2020 5×104\le 5\times 10^4
131613\sim 16 105\le 10^5
172017\sim 20 2×105\le 2\times 10^5

特殊性质 A\text{A}:保证这棵树是一条链。

特殊性质 B\text{B}:保证所有边权都相同。