#ZS0093. 树上的最近公共祖先

树上的最近公共祖先

问题描述
给定一棵包含 n 个节点的有根树(根节点为 11),处理 m 次查询,每次查询两个节点的最近公共祖先(LCALCA)。要求使用倍增算法实现高效查询。

输入格式

  • 11 行:一个整数 n2n1052 ≤ n ≤ 10^5),表示树的节点数。
  • 22nn 行:每行两个整数 uv,表示节点 u 和 v 之间有一条边。
  • n+1n+1 行:一个整数 m1m1051 ≤ m ≤ 10^5),表示查询次数。
  • n+2n+2n+m+1n+m+1 行:每行两个整数 ab,表示查询的两个节点。

输出格式

  • 输出共 m 行,每行一个整数,表示对应查询的 LCALCA 结果。

示例输入

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

示例输出

3
1