#P15943. [JOI Final 2026] JOI 之旅 2 / JOI Tour 2

[JOI Final 2026] JOI 之旅 2 / JOI Tour 2

题目描述

JOI 国有 NN 个城镇,编号为 11NN。此外,JOI 国有 N1N-1 条道路,编号为 11N1N-1。道路 jj (1jN11 \leq j \leq N-1) 双向连接城镇 UjU_j 和城镇 VjV_j。可以通过若干条道路从任意城镇前往任意其他城镇。

JOI 国的每个城镇都有一家商店。在城镇 ii (1iN1 \leq i \leq N) 的商店中,一件纪念品的售价为 AiA_i

今年,JOI 国计划了 MM 次旅行。第 kk 次旅行 (1kM1 \leq k \leq M) 从城镇 SkS_k 出发,沿着道路前往城镇 TkT_k,且不重复经过同一个城镇。注意,第 kk 次旅行同时访问城镇 SkS_kTkT_k。保证 SkTkS_k \neq T_k。注意,根据 JOI 国的结构,一次旅行所经过的城镇序列是唯一确定的。

你计划参加其中一次旅行,并在该旅行经过的城镇中恰好选出两个,在每个城镇各买一件纪念品。此外,你希望恰好用完为纪念品准备的全部预算,因此对于 QQ 个候选预算中的每一个,你决定调查有多少种实现方式。

给定 JOI 国的道路、纪念品价格、旅行信息以及候选预算 B1,B2,,BQB_1, B_2, \dots, B_Q,编写一个程序,计算选择旅行和购买纪念品的城镇的方案数。更确切地说,对于每个 qq (1qQ1 \leq q \leq Q),计算满足以下所有条件的整数三元组 (k,u,v)(k, u, v) 的数量:

  • 1kM1 \leq k \leq M
  • 1u<vN1 \leq u < v \leq N
  • kk 次旅行访问了城镇 uuvv
  • Au+Av=BqA_u + A_v = B_q

输入格式

从标准输入读取以下数据:

NN
A1A2ANA_1 A_2 \cdots A_N
U1V1U_1 V_1
U2V2U_2 V_2
\vdots
UN1VN1U_{N-1} V_{N-1}
MM
S1T1S_1 T_1
S2T2S_2 T_2
\vdots
SMTMS_M T_M
QQ
B1B2BQB_1 B_2 \cdots B_Q

输出格式

输出 QQ 行到标准输出。第 qq 行 (1qQ1 \leq q \leq Q) 应包含选择旅行和购买纪念品的城镇的方案数,使得预算 BqB_q 恰好被用完。

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,41, 2, 3, 4
  • 第 2 次旅行访问城镇 1,61, 6
  • 第 3 次旅行访问城镇 2,52, 5
  • 第 4 次旅行访问城镇 3,7,83, 7, 8

(k,u,v)(k, u, v) 表示参加第 kk 次旅行并在城镇 uuvv 购买纪念品的方法。那么,对于每个候选预算,恰好用完预算的方案如下:

  • 预算为 11 时,有 00 种方案。
  • 预算为 22 时,有 00 种方案。
  • 预算为 33 时,有 44 种方案:(1,1,2)(1, 1, 2), (1,1,4)(1, 1, 4), (2,1,6)(2, 1, 6), (3,2,5)(3, 2, 5)
  • 预算为 44 时,有 22 种方案:(1,1,3)(1, 1, 3), (1,2,4)(1, 2, 4)
  • 预算为 55 时,有 44 种方案:(1,2,3)(1, 2, 3), (1,3,4)(1, 3, 4), (4,3,8)(4, 3, 8), (4,7,8)(4, 7, 8)
  • 预算为 66 时,有 11 种方案:(4,3,7)(4, 3, 7)

该输入样例满足子任务 1,3,7,9,111, 3, 7, 9, 11 的限制。

样例 2

该输入样例满足子任务 1,2,3,6,7,8,9,10,111, 2, 3, 6, 7, 8, 9, 10, 11 的限制。

限制

  • 2N1000002 \leq N \leq 100\,000
  • 1AiN1 \leq A_i \leq N (1iN1 \leq i \leq N)。
  • 1UjN1 \leq U_j \leq N (1jN11 \leq j \leq N-1)。
  • 1VjN1 \leq V_j \leq N (1jN11 \leq j \leq N-1)。
  • 可以通过若干条道路从任意城镇前往任意其他城镇。
  • 1M2000001 \leq M \leq 200\,000
  • 1SkN1 \leq S_k \leq N (1kM1 \leq k \leq M)。
  • 1TkN1 \leq T_k \leq N (1kM1 \leq k \leq M)。
  • SkTkS_k \neq T_k (1kM1 \leq k \leq M)。
  • 1Q20001 \leq Q \leq 2\,000
  • 1B1<B2<<BQ2N1 \leq B_1 < B_2 < \cdots < B_Q \leq 2N
  • 所有输入值均为整数。

子任务

  1. (3 分) N100,M100,Q100N \leq 100, M \leq 100, Q \leq 100
  2. (4 分) N5000,Uj=j,Vj=j+1N \leq 5000, U_j = j, V_j = j + 1 (1jN11 \leq j \leq N-1)。
  3. (5 分) N5000N \leq 5000
  4. (6 分) Q=1,Uj=j,Vj=j+1Q = 1, U_j = j, V_j = j + 1 (1jN11 \leq j \leq N-1)。
  5. (10 分) Q=1Q = 1
  6. (7 分) M1000,Uj=j,Vj=j+1M \leq 1000, U_j = j, V_j = j + 1 (1jN11 \leq j \leq N-1)。
  7. (12 分) M1000M \leq 1000
  8. (10 分) $N \leq 50\,000, M \leq 50\,000, U_j = j, V_j = j + 1$ (1jN11 \leq j \leq N-1)。
  9. (15 分) N50000,M50000N \leq 50\,000, M \leq 50\,000
  10. (11 分) Uj=j,Vj=j+1U_j = j, V_j = j + 1 (1jN11 \leq j \leq N-1)。
  11. (17 分) 无附加限制。