P15943 [JOI Final 2026] JOI 之旅 2 / JOI Tour 2
题目描述
JOI 国有 $N$ 个城镇,编号为 $1$ 到 $N$。此外,JOI 国有 $N-1$ 条道路,编号为 $1$ 到 $N-1$。道路 $j$ ($1 \leq j \leq N-1$) 双向连接城镇 $U_j$ 和城镇 $V_j$。可以通过若干条道路从任意城镇前往任意其他城镇。
JOI 国的每个城镇都有一家商店。在城镇 $i$ ($1 \leq i \leq N$) 的商店中,一件纪念品的售价为 $A_i$。
今年,JOI 国计划了 $M$ 次旅行。第 $k$ 次旅行 ($1 \leq k \leq M$) 从城镇 $S_k$ 出发,沿着道路前往城镇 $T_k$,且不重复经过同一个城镇。注意,第 $k$ 次旅行同时访问城镇 $S_k$ 和 $T_k$。保证 $S_k \neq T_k$。注意,根据 JOI 国的结构,一次旅行所经过的城镇序列是唯一确定的。
你计划参加其中一次旅行,并在该旅行经过的城镇中恰好选出两个,在每个城镇各买一件纪念品。此外,你希望恰好用完为纪念品准备的全部预算,因此对于 $Q$ 个候选预算中的每一个,你决定调查有多少种实现方式。
给定 JOI 国的道路、纪念品价格、旅行信息以及候选预算 $B_1, B_2, \dots, B_Q$,编写一个程序,计算选择旅行和购买纪念品的城镇的方案数。更确切地说,对于每个 $q$ ($1 \leq q \leq Q$),计算满足以下所有条件的整数三元组 $(k, u, v)$ 的数量:
- $1 \leq k \leq M$。
- $1 \leq u < v \leq N$。
- 第 $k$ 次旅行访问了城镇 $u$ 和 $v$。
- $A_u + A_v = B_q$。
输入格式
从标准输入读取以下数据:
> $N$\
> $A_1 A_2 \cdots A_N$\
> $U_1 V_1$\
> $U_2 V_2$\
> $\vdots$\
> $U_{N-1} V_{N-1}$\
> $M$\
> $S_1 T_1$\
> $S_2 T_2$\
> $\vdots$\
> $S_M T_M$\
> $Q$\
> $B_1 B_2 \cdots B_Q$
输出格式
输出 $Q$ 行到标准输出。第 $q$ 行 ($1 \leq q \leq Q$) 应包含选择旅行和购买纪念品的城镇的方案数,使得预算 $B_q$ 恰好被用完。
说明/提示
### 样例 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 \leq N \leq 100\,000$。
- $1 \leq A_i \leq N$ ($1 \leq i \leq N$)。
- $1 \leq U_j \leq N$ ($1 \leq j \leq N-1$)。
- $1 \leq V_j \leq N$ ($1 \leq j \leq N-1$)。
- 可以通过若干条道路从任意城镇前往任意其他城镇。
- $1 \leq M \leq 200\,000$。
- $1 \leq S_k \leq N$ ($1 \leq k \leq M$)。
- $1 \leq T_k \leq N$ ($1 \leq k \leq M$)。
- $S_k \neq T_k$ ($1 \leq k \leq M$)。
- $1 \leq Q \leq 2\,000$。
- $1 \leq B_1 < B_2 < \cdots < B_Q \leq 2N$。
- 所有输入值均为整数。
### 子任务
1. (3 分) $N \leq 100, M \leq 100, Q \leq 100$。
2. (4 分) $N \leq 5000, U_j = j, V_j = j + 1$ ($1 \leq j \leq N-1$)。
3. (5 分) $N \leq 5000$。
4. (6 分) $Q = 1, U_j = j, V_j = j + 1$ ($1 \leq j \leq N-1$)。
5. (10 分) $Q = 1$。
6. (7 分) $M \leq 1000, U_j = j, V_j = j + 1$ ($1 \leq j \leq N-1$)。
7. (12 分) $M \leq 1000$。
8. (10 分) $N \leq 50\,000, M \leq 50\,000, U_j = j, V_j = j + 1$ ($1 \leq j \leq N-1$)。
9. (15 分) $N \leq 50\,000, M \leq 50\,000$。
10. (11 分) $U_j = j, V_j = j + 1$ ($1 \leq j \leq N-1$)。
11. (17 分) 无附加限制。