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

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

AdditionalFile5667.zip

#5667. 「JOI 2026 Final Day2」JOI 巡游 2

标签: 传统 | 时间限制: 7000 ms | 内存限制: 1024 MiB |

题目描述

题目译自 JOI 2026 Final Day2 T2 「JOI ツアー 2 / JOI Tour 2

JOI 国有 NN 个城市,编号为 11NN。此外,JOI 国有 N1N-1 条道路,编号为 11N1N-1。道路 jj (1jN1)(1 \le j \le N-1) 双向连接城市 UjU_j 和城市 VjV_j。从任何一个城市出发,都可以通过若干条道路到达任何另一个城市。

JOI 国的每个城市都有一家商店,城市 ii (1iN)(1 \le i \le N) 的商店出售纪念品,价格为 AiA_i

JOI 国今年计划开展 MM 个巡游。第 kk (1kM)(1 \le k \le M) 个巡游从城市 SkS_k 出发,通过道路移动到城市 TkT_k,且不重复经过同一个城市。也就是说,第 kk 个巡游会访问城市 SkS_kTkT_k 之间的简单路径上的所有城市。保证 SkTkS_k \neq T_k。请注意,根据 JOI 国的结构(树形结构),巡游所访问的城市序列是唯一确定的。

你计划参加其中一个巡游,并在访问的城市中恰好选择两个不同的城市各购买一件纪念品。此外,你希望为纪念品准备的预算刚好用完,因此决定针对 QQ 种预算候选值,调查每种预算下对应的购买方案有多少种。

给定 JOI 国的道路、纪念品价格、巡游信息以及预算候选值 B1,B2,,BQB_1, B_2, \ldots, B_Q,请编写一个程序,计算选择巡游及购买纪念品城市的方法总数。更形式化地,对于每个 qq (1qQ)(1 \le q \le Q),求出满足以下所有条件的整数组 (k,u,v)(k, u, v) 的个数。

  • 1kM1 \le k \le M
  • 1u<vN1 \le u < v \le N
  • kk 个巡游访问了城市 uuvv
  • Au+Av=BqA_u + A_v = B_q

输入格式

第一行包含一个整数 NN

第二行包含 NN 个整数 A1,A2,,ANA_1, A_2, \ldots, A_N

接下来的 N1N-1 行,其中第 jj 行包含两个整数 UjU_jVjV_j

接下来一行包含一个整数 MM

接下来的 MM 行,其中第 kk 行包含两个整数 SkS_kTkT_k

接下来一行包含一个整数 QQ

最后一行包含 QQ 个整数 B1,B2,,BQB_1, B_2, \ldots, B_Q

输出格式

在标准输出中输出 QQ 行。第 qq (1qQ)(1 \le q \le Q) 行应输出在预算刚好为 BqB_q 时,选择巡游及购买纪念品城市的方法总数。

样例 1

输入

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

首先,每个巡游访问的城市如下:

  • 11 个巡游访问城市 1,2,3,41, 2, 3, 4
  • 22 个巡游访问城市 1,61, 6
  • 33 个巡游访问城市 2,52, 5
  • 44 个巡游访问城市 3,7,83, 7, 8

如果用 (k,u,v)(k, u, v) 表示参加第 kk 个巡游并在城市 u,vu, v 购买纪念品的方法,对于每个预算候选值,刚好用完预算的方法如下:

  • 预算为 11 的方法有 00 种。
  • 预算为 22 的方法有 00 种。
  • 预算为 33 的方法有 (1,1,2),(1,1,4),(2,1,6),(3,2,5)(1, 1, 2), (1, 1, 4), (2, 1, 6), (3, 2, 5),共 44 种。
  • 预算为 44 的方法有 (1,1,3),(1,2,4)(1, 1, 3), (1, 2, 4),共 22 种。
  • 预算为 55 的方法有 (1,2,3),(1,3,4),(4,3,8),(4,7,8)(1, 2, 3), (1, 3, 4), (4, 3, 8), (4, 7, 8),共 44 种。
  • 预算为 66 的方法有 (4,3,7)(4, 3, 7),共 11 种。
  • 预算为 1616 的方法有 00 种。

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

样例 2

输入

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,2,3,6,7,8,9,10,111, 2, 3, 6, 7, 8, 9, 10, 11 的限制。

数据范围与提示

对于所有输入数据,满足:

  • 2N1000002 \leq N \leq 100000
  • 1AiN1 \leq A_i \leq N (1iN)(1 \leq i \leq N)
  • 1UjN1 \leq U_j \leq N (1jN1)(1 \leq j \leq N-1)
  • 1VjN1 \leq V_j \leq N (1jN1)(1 \leq j \leq N-1)
  • 任意两个城市之间都可以通过若干条道路互相到达。
  • 1M2000001 \leq M \leq 200000
  • 1SkN1 \leq S_k \leq N (1kM)(1 \leq k \leq M)
  • 1TkN1 \leq T_k \leq N (1kM)(1 \leq k \leq M)
  • SkTkS_k \neq T_k (1kM)(1 \leq k \leq M)
  • 1Q20001 \leq Q \leq 2000
  • 1B1<B2<<BQ2N1 \leq B_1 < B_2 < \cdots < B_Q \leq 2N
  • 所有输入的数值均为整数。

详细子任务附加限制及分值如下表所示。

子任务 分值 附加限制
11 33 N100,M100,Q100N \leq 100, M \leq 100, Q \leq 100
22 44 N5000,Uj=j,Vj=j+1N \leq 5000, U_j=j, V_j=j+1 (1jN1)(1 \leq j \leq N-1)
33 55 N5000N \leq 5000
44 66 Q=1,Uj=j,Vj=j+1Q=1, U_j=j, V_j=j+1 (1jN1)(1 \leq j \leq N-1)
55 1010 Q=1Q=1
66 77 M1000,Uj=j,Vj=j+1M \leq 1000, U_j=j, V_j=j+1 (1jN1)(1 \leq j \leq N-1)
77 1212 M1000M \leq 1000
88 1010 N50000,M50000,Uj=j,Vj=j+1N \leq 50000, M \leq 50000, U_j=j, V_j=j+1 (1jN1)(1 \leq j \leq N-1)
99 1515 N50000,M50000N \leq 50000, M \leq 50000
1010 1111 Uj=j,Vj=j+1U_j=j, V_j=j+1 (1jN1)(1 \leq j \leq N-1)
1111 1717 无附加限制