#HK3974. 「JOISC 2023 Day3」旅行

「JOISC 2023 Day3」旅行

题目描述

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

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

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

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

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

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

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

输入格式

第一行三个整数 N,M,QN,M,Q

接下来 N1N-1 行,每行两个整数 Ai,BiA_i,B_i

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

接下来 QQ 行,每行两个整数 Lk,RkL_k,R_k

输出格式

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

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

  1. 旅行者 11 到达岛屿 22
  2. 旅行者 11 游览岛屿 22 上的景点 11
  3. 旅行者 11 从岛屿 22 经过桥 11 到达岛屿 11
  4. 旅行者 11 从岛屿 11 经过桥 22 到达岛屿 33
  5. 旅行者 11 游览岛屿 33 上的景点 22
  6. 旅行者 11 从岛屿 33 经过桥 55 到达岛屿 66
  7. 旅行者 11 游览岛屿 66 上的景点 33
  8. 旅行者 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

  1. 旅行者 22 到达岛屿 33
  2. 旅行者 22 从岛屿 33 经过桥 66 到达岛屿 77
  3. 旅行者 22 游览岛屿 77 上的景点 66
  4. 旅行者 22 从岛屿 77 经过桥 66 到达岛屿 33
  5. 旅行者 22 从岛屿 33 经过桥 22 到达岛屿 11
  6. 旅行者 22 从岛屿 11 经过桥 11 到达岛屿 22
  7. 旅行者 22 从岛屿 22 经过桥 33 到达岛屿 44
  8. 旅行者 22 游览岛屿 44 上的景点 44
  9. 旅行者 22 从岛屿 44 经过桥 33 到达岛屿 22
  10. 旅行者 22 从岛屿 22 经过桥 44 到达岛屿 55
  11. 旅行者 22 游览岛屿 55 上的景点 55
  12. 旅行者 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 的限制。

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 的限制。

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

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

子任务编号 附加限制 分值
11 N,M,Q300N,M,Q\le 300 55
22 N,M,Q2 000N,M,Q\le 2\ 000
33 Ai=i,Bi=i+1A_i=i,B_i=i+1 77
44 L1=1,Rk+1=Lk+1,RQ=ML_1=1,R_k+1=L_{k+1},R_Q=M 1818
55 Ai=i+12,Bi=i+1A_i=\lfloor\frac{i+1}{2}\rfloor,B_i=i+1,这里 x\lfloor x\rfloor 表示不超过 xx 的最大整数 2424
66 无附加限制 4141