编程题
### 问题描述 给定一棵有 $N$ 个节点的树,每个节点有一个唯一的编号,从 $1$ 到 $N$。树的根节点是 $1$ 号节点。接下来,你会得到 $Q$ 个查询。对于每个查询,你将得到两个节点的编号,你的任务是找到这两个节点的最低公共祖先。 ### 输入格式 第一行包含一个整数 $N$,表示树的节点数。 接下来的 $N-1$ 行,每行包含两个整数 $U$ 和 $V$,表示节点 $U$ 和节点 $V$ 之间有一条边。 下一行包含一个整数 $Q$,表示查询的数量。 接下来的 $Q$ 行,每行包含两个整数 $A$ 和 $B$,表示你需要找到节点 $A$ 和节点 $B$ 的最低公共祖先。 ### 输出格式 对于每个查询,输出一行,该行包含一个整数,表示两个节点的最近公共祖先。 ### 样例输入 ``` 5 1 2 1 3 2 4 2 5 3 4 5 3 4 3 5 ``` ### 样例输出 ``` 2 1 1 ``` ### 样例说明 对于第一个查询,$4$ 和 $5$ 的最低公共祖先是 $2$。 对于第二个查询,$3$ 和 $4$ 的最低公共祖先是 $1$。 对于第三个查询,$3$ 和 $5$ 的最低公共祖先是 $1$。 ### 测评数据规模 $2 \leq N \leq 10^5$,$1 \leq Q \leq 10^4$,$1 \leq U, V, A, B \leq N$,题目保证输入的边形成一棵树。
查看答案
赣ICP备20007335号-2