#P9196. 树上跳跃(Jump on Tree)

树上跳跃(Jump on Tree)

树上跳跃(Jump on Tree)

问题描述

给定一棵含 N N 个顶点的树,其中第 i i 条边(0i<N1 0 \le i < N-1 )连接顶点 ai a_i bi b_i
请按顺序处理以下 Q Q 个查询:

  • s t i:设从 s s t t 的最短路径为 (v0,v1,,vk) (v_0, v_1, \dots, v_k) ,其中 v0=s v_0 = s vk=t v_k = t 。若 ik i \le k ,输出 vi v_i ;否则输出 -1

约束条件

  • 2N5×105 2 \leq N \leq 5 \times 10^5
  • 1Q5×105 1 \leq Q \leq 5 \times 10^5
  • 0ai,biN1 0 \leq a_i, b_i \leq N-1
  • aibi a_i \ne b_i
  • 0s,tN1 0 \leq s, t \leq N-1
  • 0iN1 0 \leq i \leq N-1

输入格式

N QN\ Q
a0 b0a_0\ b_0
a1 b1a_1\ b_1
:
aN2 bN2a_{N-2}\ b_{N-2}
s0 t0 i0s_0\ t_0\ i_0
s1 t1 i1s_1\ t_1\ i_1
:
sQ1 tQ1 iQ1s_{Q-1}\ t_{Q-1}\ i_{Q-1}

8 13
0 1
1 2
2 3
1 4
4 7
1 5
2 6
5 5 0
5 5 1
4 3 0
4 3 1
4 3 2
4 3 3
4 3 4
6 7 0
6 7 1
6 7 2
6 7 3
6 7 4
6 7 5
5
-1
4
1
2
3
-1
6
2
1
4
7
-1