#L3974. 「JOISC 2023 Day3」旅行

「JOISC 2023 Day3」旅行

题目描述
译自 JOISC 2023 Day3 T3 「旅行 / Tourism」

JOI 国是一个由 NN 个岛屿构成的岛国,这 NN 个岛屿编号为 11NN。这些岛屿由 N1N-1 座桥相连,这些桥编号为 11N1N-1。桥 ii (1iN1)(1\le i\le N-1) 双向连接岛屿 AiA_iBiB_i。保证可以从一座岛屿出发,经过一定数量的桥到达任意其他岛屿。

在 JOI 国中,有 MM 个旅游景点,从 11MM 编号。景点 jj (1jM)(1\le j\le M) 位于岛屿 CjC_j 上。

QQ 个旅行者,编号为 11QQ。他们计划去 JOI 国旅游。每个旅行者按如下方式旅游:

  • 旅行者选择一个岛屿 xx (1xN)(1\le x\le N),并乘飞机抵达岛屿 xx
  • 旅行者执行如下操作若干次,操作的顺序和种类任意
    • 旅行者选择目前岛上的一个景点并游览它
    • 旅行者通过一座桥移动到其他岛屿
  • 旅行者乘飞机离开 JOI 国

旅行者 kk (1kQ)(1\le k\le Q) 想要游览所有景点 Lk,Lk+1,,RkL_k, L_k+1, \ldots, R_k。然而,由于预算有限,旅行者 kk 希望最小化至少去过一遍的岛屿数。

给定 JOI 国和旅行者的信息,写一个程序计算对于每个 kk (1kQ)(1\le k\le Q),旅行者 kk 至少去过一遍的岛屿数的最小值。


输入格式
第一行三个整数 NN, MM, QQ

接下来 N1N-1 行,每行两个整数 AiA_i, BiB_i

接下来一行 MM 个整数 C1,C2,,CMC_1, C_2, \ldots, C_M

接下来 QQ 行,每行两个整数 LkL_k, RkR_k


输出格式
输出 QQ 行,第 kk 行输出一个整数,表示旅行者 kk 至少去过一遍的岛屿数的最小值。


样例 1
输入

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

输出

4
6

旅行者 11 按如下方式旅行,并游览景点 1,2,31,2,3

  • 旅行者 11 到达岛屿 22
  • 旅行者 11 游览岛屿 22 上的景点 11
  • 旅行者 11 从岛屿 22 经过桥 11 到达岛屿 11
  • 旅行者 11 从岛屿 11 经过桥 22 到达岛屿 33
  • 旅行者 11 游览岛屿 33 上的景点 22
  • 旅行者 11 从岛屿 33 经过桥 55 到达岛屿 66
  • 旅行者 11 游览岛屿 66 上的景点 33
  • 旅行者 11 从岛屿 66 离开 JOI 国

旅行者 11 至少到过一次的岛屿是岛屿 1,2,3,61,2,3,6。如果旅行者 11 至少到过一次的岛屿数小于等于 33,就不可能游览所有景点 1,2,31,2,3 了。因此第一行输出 44

旅行者 22 按如下方式旅行,并游览景点 4,5,64,5,6

  • 旅行者 22 到达岛屿 33
  • 旅行者 22 从岛屿 33 经过桥 66 到达岛屿 77
  • 旅行者 22 游览岛屿 77 上的景点 66
  • 旅行者 22 从岛屿 77 经过桥 66 到达岛屿 33
  • 旅行者 22 从岛屿 33 经过桥 22 到达岛屿 11
  • 旅行者 22 从岛屿 11 经过桥 11 到达岛屿 22
  • 旅行者 22 从岛屿 22 经过桥 33 到达岛屿 44
  • 旅行者 22 游览岛屿 44 上的景点 44
  • 旅行者 22 从岛屿 44 经过桥 33 到达岛屿 22
  • 旅行者 22 从岛屿 22 经过桥 44 到达岛屿 55
  • 旅行者 22 游览岛屿 55 上的景点 55
  • 旅行者 22 从岛屿 55 离开 JOI 国

旅行者 22 至少到过一次的岛屿是岛屿 1,2,3,4,5,71,2,3,4,5,7。如果旅行者 22 至少到过一次的岛屿数小于等于 55,就不可能游览所有景点 4,5,64,5,6 了。因此第二行输出 66

这组样例满足子任务 1,2,4,5,61,2,4,5,6 的限制。


样例 2
输入

8 8 9
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 6 4 3 5 2 4 7
3 5
4 6
6 8
1 4
2 3
6 8
5 5
2 8
1 2

输出

3
4
6
6
3
6
1
6
3

这组样例满足子任务 1,2,3,61,2,3,6 的限制。


样例 3
输入

10 7 9
6 5
3 6
9 3
8 3
7 8
7 1
2 5
7 10
8 4
9 4 10 1 10 7 6
4 4
1 3
1 3
6 7
3 6
3 3
1 5
2 5
1 2

输出

1
6
6
4
3
1
7
5
4

这组样例满足子任务 1,2,61,2,6 的限制。


数据范围与提示
对于所有输入数据,满足:

  • 1N,M,Q1051\le N,M,Q\le 10^5
  • 1Ai,BiN1\le A_i,B_i\le N
  • 保证从一座岛屿出发,可以经过一定数量的桥到达任意其他岛屿
  • 1CjN1\le C_j\le N
  • 1LkRkM1\le L_k\le R_k\le M

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

子任务编号 附加限制 分值
1 N,M,Q300N,M,Q\le 300 5
2 N,M,Q2000N,M,Q\le 2\,000
3 Ai=iA_i=i, Bi=i+1B_i=i+1 7
4 L1=1L_1=1, Rk+1=Lk+1R_k+1=L_{k+1}, RQ=MR_Q=M 18
5 Ai=i+12A_i=\lfloor\frac{i+1}{2}\rfloor, Bi=i+1B_i=i+1,这里 x\lfloor x\rfloor 表示不超过 xx 的最大整数 24
6 无附加限制 41