题目描述
JOI 国有 N 个城镇,编号为 1 到 N。此外,JOI 国有 N−1 条道路,编号为 1 到 N−1。道路 j (1≤j≤N−1) 双向连接城镇 Uj 和城镇 Vj。可以通过若干条道路从任意城镇前往任意其他城镇。
JOI 国的每个城镇都有一家商店。在城镇 i (1≤i≤N) 的商店中,一件纪念品的售价为 Ai。
今年,JOI 国计划了 M 次旅行。第 k 次旅行 (1≤k≤M) 从城镇 Sk 出发,沿着道路前往城镇 Tk,且不重复经过同一个城镇。注意,第 k 次旅行同时访问城镇 Sk 和 Tk。保证 Sk=Tk。注意,根据 JOI 国的结构,一次旅行所经过的城镇序列是唯一确定的。
你计划参加其中一次旅行,并在该旅行经过的城镇中恰好选出两个,在每个城镇各买一件纪念品。此外,你希望恰好用完为纪念品准备的全部预算,因此对于 Q 个候选预算中的每一个,你决定调查有多少种实现方式。
给定 JOI 国的道路、纪念品价格、旅行信息以及候选预算 B1,B2,…,BQ,编写一个程序,计算选择旅行和购买纪念品的城镇的方案数。更确切地说,对于每个 q (1≤q≤Q),计算满足以下所有条件的整数三元组 (k,u,v) 的数量:
- 1≤k≤M。
- 1≤u<v≤N。
- 第 k 次旅行访问了城镇 u 和 v。
- Au+Av=Bq。
输入格式
从标准输入读取以下数据:
N
A1A2⋯AN
U1V1
U2V2
⋮
UN−1VN−1
M
S1T1
S2T2
⋮
SMTM
Q
B1B2⋯BQ
输出格式
输出 Q 行到标准输出。第 q 行 (1≤q≤Q) 应包含选择旅行和购买纪念品的城镇的方案数,使得预算 Bq 恰好被用完。
8
1 2 3 2 1 2 3 2
2 3
7 8
4 3
1 2
7 3
2 5
6 1
4
1 4
1 6
2 5
3 8
7
1 2 3 4 5 6 16
0
0
4
2
4
1
0
8
8 2 3 6 1 4 1 7
1 2
2 3
3 4
4 5
5 6
6 7
7 8
1
1 8
5
2 4 5 10 15
1
2
3
3
1
提示
样例 1
首先,每次旅行访问的城镇如下:
- 第 1 次旅行访问城镇 1,2,3,4。
- 第 2 次旅行访问城镇 1,6。
- 第 3 次旅行访问城镇 2,5。
- 第 4 次旅行访问城镇 3,7,8。
用 (k,u,v) 表示参加第 k 次旅行并在城镇 u 和 v 购买纪念品的方法。那么,对于每个候选预算,恰好用完预算的方案如下:
- 预算为 1 时,有 0 种方案。
- 预算为 2 时,有 0 种方案。
- 预算为 3 时,有 4 种方案:(1,1,2), (1,1,4), (2,1,6), (3,2,5)。
- 预算为 4 时,有 2 种方案:(1,1,3), (1,2,4)。
- 预算为 5 时,有 4 种方案:(1,2,3), (1,3,4), (4,3,8), (4,7,8)。
- 预算为 6 时,有 1 种方案:(4,3,7)。
该输入样例满足子任务 1,3,7,9,11 的限制。
样例 2
该输入样例满足子任务 1,2,3,6,7,8,9,10,11 的限制。
限制
- 2≤N≤100000。
- 1≤Ai≤N (1≤i≤N)。
- 1≤Uj≤N (1≤j≤N−1)。
- 1≤Vj≤N (1≤j≤N−1)。
- 可以通过若干条道路从任意城镇前往任意其他城镇。
- 1≤M≤200000。
- 1≤Sk≤N (1≤k≤M)。
- 1≤Tk≤N (1≤k≤M)。
- Sk=Tk (1≤k≤M)。
- 1≤Q≤2000。
- 1≤B1<B2<⋯<BQ≤2N。
- 所有输入值均为整数。
子任务
- (3 分) N≤100,M≤100,Q≤100。
- (4 分) N≤5000,Uj=j,Vj=j+1 (1≤j≤N−1)。
- (5 分) N≤5000。
- (6 分) Q=1,Uj=j,Vj=j+1 (1≤j≤N−1)。
- (10 分) Q=1。
- (7 分) M≤1000,Uj=j,Vj=j+1 (1≤j≤N−1)。
- (12 分) M≤1000。
- (10 分) $N \leq 50\,000, M \leq 50\,000, U_j = j, V_j = j + 1$ (1≤j≤N−1)。
- (15 分) N≤50000,M≤50000。
- (11 分) Uj=j,Vj=j+1 (1≤j≤N−1)。
- (17 分) 无附加限制。