#L0088. 【模板】树上最近公共祖先

【模板】树上最近公共祖先

题目描述

给定一棵有根多叉树,请回答若干次询问:每次指定两个结点,求它们最近的公共祖先。

输入格式

第一行包含三个正整数 N,M,SN,M,S,分别表示树的结点个数、询问的个数和树根结点的序号。

接下来 N1N-1 行,每行包含两个正整数 x,yx, y,表示结点 xx 与结点 yy 之间有一条直接相连的边(数据保证这些边恰好构成一棵树)。

接下来 MM 行,每行包含两个正整数 a,ba, b,表示询问结点 aa 与结点 bb 的最近公共祖先。

输出格式

输出共 MM 行,每行一个正整数,依次为每次询问的结果。

样例

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

4 1 4 4

</p>

提示

对于 30%30\% 的数据,N10N\leq 10M10M\leq 10

对于 70%70\% 的数据,N10000N\leq 10000M10000M\leq 10000

对于 100%100\% 的数据,1N,M5×1051 \leq N,M\leq 5\times10^51x,y,a,bN1 \leq x, y,a ,b \leq N不保证 aba \neq b

样例说明:

五次询问的答案依次为 4,4,1,4,44, 4, 1, 4, 4:前两次询问的公共祖先都是 44 号结点,第三次为 11 号结点,最后两次也都是 44 号结点。

难度 普及
通过率
尝试 0
已通过 0
ID
822
类型
传统题
Time Limit
2000ms
Memory Limit
512MiB
上传者