#N2U08P01. 查询最近公共祖先

查询最近公共祖先

查询最近公共祖先

难度:T4

【知识点:倍增LCA】

前置知识:倍增LCA及其冻结前置单元。

题目描述与输入

第一行nn mm,随后mm行树边uu vv ww(忽略ww);再读qq,随后qq行uu vv。查询根为11时uu与vv的最近公共祖先编号。

规则说明

一个点的祖先包括它自己,以及沿父节点一直走到根所经过的点。两个点的最近公共祖先,是它们共同祖先中离根最远的那个;查询两点相同时,结果就是该点。

输出

每个查询输出一行结果。

数据范围

1≤n≤801 \le n \le 80,m=n−1m=n - 1,1≤q≤2001 \le q \le 200;ww为占位值,根为11。

样例输入

5 4
1 2 2
2 3 3
2 4 1
4 5 4
4
3 5
2 2
1 5
4 5

样例输出

2
2
1
4

样例说明

四次最近公共祖先分别为22、22、11、44。