#loj5229. 「UOI 2021 Stage 4 Day1」树上的强盗

「UOI 2021 Stage 4 Day1」树上的强盗

[AdditionalFile5229.zip](file://AdditionalFile5229.zip?type=additional_file)

#5229. 「UOI 2021 Stage 4 Day1」树上的强盗

标签: 传统 | 时间限制: 1000 ms | 内存限制: 256 MiB |

题目描述

题目译自 Ukrainian Olympiads in Informatics 2021 Stage 4 Day1 T4. Бандити на дереві

nn 座城市,编号从 11nn。所有城市通过 (n1)(n - 1) 条道路连接,形成一个连通图,任意两座城市之间都可以互相到达。每条道路都有一定的长度。

已知编号为 ii 的城市在时间 tit_i 被编号为 aia_i (1ain)(1 \leq a_i \leq n) 的强盗帮派占领。从城市 ii 被占领的时间 tit_i 开始(包括 tit_i,只有 aia_i 帮派的成员可以通过这座城市。

请回答 mm 个查询,每个查询的形式如下:

  • u v b Tu\ v\ b\ T:编号为 bb 的帮派成员是否能在时间 TT 开始旅行时,从城市 uu 到达城市 vv。如果无法完成旅行,还需要输出从 uuvv 路径上第一个无法通过的城市编号。

输入格式

第一行包含一个整数 nn (2n105)(2 \leq n \leq 10^{5}),表示城市的数量。

接下来的 (n1)(n - 1) 行,每行包含两个整数 pip_idid_i (1pi<i,1di103)(1 \leq p_i < i, 1 \leq d_i \leq 10^{3}),表示城市 ii 和城市 pip_i 之间有一条长度为 did_i 的道路。注意索引从 22 开始。

接下来的一行包含 nn 个整数 aia_i (1ain)(1 \leq a_i \leq n),表示占领对应城市的强盗帮派编号。

再接下来的一行包含 nn 个整数 tit_i (1ti109)(1 \leq t_i \leq 10^{9}),表示每座城市被占领的时间。

再接下来的一行包含一个整数 mm (1m105)(1 \leq m \leq 10^{5}),表示查询的数量。

最后 mm 行描述查询,每行包含四个整数 ui,vi,bi,Tiu_i, v_i, b_i, T_i $(1 \leq u_i, v_i, b_i \leq n, 1 \leq T_i \leq 10^{9})$,分别表示起始城市编号、目标城市编号、旅行者所属帮派编号以及旅行开始的时间。

输出格式

对每个查询,在单独的一行输出一个整数,表示从 uuvv 路径上第一个无法通过的城市编号。如果不存在这样的城市,则输出 -1\texttt{-1}

请注意本题输入输出数据量较大,建议使用高效的输入输出方式,例如在 C++ 中使用 scanf/printf\texttt{scanf/printf} 而非 cin/cout\texttt{cin/cout},在 Python 中使用 sys.stdin.readline\texttt{sys.stdin.readline} 而非 input\texttt{input}。同时,建议在 Python 中使用 PyPy 解释器来解决此问题。

样例 1

输入

5
1 7
1 3
2 2
2 1
1 1 2 3 3
10 4 15 15 1
8
5 3 3 1
5 3 3 2
5 3 3 3
5 3 1 1
4 3 1 2
4 3 1 3
3 4 1 3
2 1 1 100

输出

-1
1
2
5
-1
3
4
-1

样例 2

输入

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

输出

5
-1
4
4
1

样例 3

输入

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

输出

2
-1
4
2
2

数据范围与提示

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

子任务 分值 附加限制
11 77 pi=1p_i = 1
22 99 n,m103n, m \leq 10^{3}
33 1111 pi=i1p_i = i - 1, ti=1t_i = 1
44 1818 pi=i1p_i = i - 1, ai=1a_i = 1, bi=2b_i = 2
55 1515 pi=i1p_i = i - 1
66 1111 ti=1t_i = 1
77 1717 ai=1a_i = 1, bi=2b_i = 2
88 1212 无附加限制