loj#P3502. 「联合省选 2021 A | B」宝石

「联合省选 2021 A | B」宝石

题目描述

欧艾大陆上有 nn 座城市,城市从 1n1 \sim n 编号,所有城市经由 n1n - 1 条无向道路互相连通,即 nn 座城市与 n1n - 1 条道路构成了一棵树。

每座城市的集市上都会出售宝石,总共有 mm 种不同的宝石,用 1m1 \sim m 编号。ii 号城市的集市出售的是第 wiw_i 种宝石,一种宝石可能会在多座城市的集市出售。

K 神有一个宝石收集器。这个宝石收集器能按照顺序收集至多 cc 颗宝石,其收集宝石的顺序为:P1,P2,,PcP_1, P_2, \ldots , P_c。更具体地,收集器需要先放入第 P1P_1 种宝石,然后才能再放入第 P2P_2 种宝石,之后再能放入第 P3P_3 种宝石,以此类推。其中 P1,P2,,PcP_1, P_2, \ldots , P_c 互不相等。

K 神到达一个城市后,如果该城市的集市上出售的宝石种类和当前收集器中需要放入的种类相同,则他可以在该城市的集市上购买一颗宝石并放入宝石收集器中;否则他只会路过该城市什么都不做。

现在 K 神给了你 qq 次询问,每次给出起点 sis_i 与终点 tit_i,他想知道如果从 sis_i 号城市出发,沿最短路线走到 tit_i 号城市后,他的收集器中最多能收集到几个宝石?(在每次询问中,收集器内初始时没有任何宝石。起点与终点城市集市上的宝石可以尝试被收集)

输入格式

第一行,包含三个正整数 n,m,cn, m, c,分别表示城市数,宝石种类数,收集器的容量。
第二行,包含 cc 个正整数 PiP_i。数据保证 1Pim1 \le P_i \le m 且这些数互不相等。
第三行,包含 nn 个正整数 wiw_i,表示每个城市集市上出售的宝石种类。
接下来 n1n - 1 行,每行两个正整数 ui,viu_i, v_i,表示一条连接 uiu_iviv_i 号城市的道路。
接下来一行,包含一个正整数 qq,表示询问次数。
接下来 qq 行,每行两个正整数 si,tis_i, t_i,表示该次询问的起点与终点。

输出格式

按输入顺序输出 qq 行,每行一个整数,表示询问的答案。

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

2
2
2
3
1

样例 2

见附加文件中的 [gem2.in](file:gem2.in) 与 [gem2.ans](file:gem2.ans)。

样例 3

见附加文件中的 [gem3.in](file:gem3.in) 与 [gem3.ans](file:gem3.ans)。

数据范围与提示

对于所有测试数据:1n,q2×1051 \le n, q \le 2 \times {10}^51cm5×1041 \le c \le m \le 5 \times {10}^41wim1 \le w_i \le m

每个测试点的具体限制见下表:

测试点编号 n,qn, q \le 特殊限制
121 \sim 2 1010
353 \sim 5 10001000
6106 \sim 10 2×1052 \times {10}^5 m300m \le 300
111411 \sim 14 ui=iu_i = ivi=i+1v_i = i + 1
152015 \sim 20