测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A70774. 树的公共祖先(LCA)(2)

编程题 入门

题目描述

给定一棵树和两个不同的结点,求出他们最近的公共祖先父结点。

已知该树有 n 个节点,标号 1 \dots n ,标号为 1 的结点是该树的根。

输入格式

1 行输入一个整数 n,代表结点数量(n≤100);

2 行输入两个整数 xy,表示需要计算的结点;

以下 n-1 行,每行两个整数 ab结点 ab 是父子关系,但不保证 ab 的父

输出格式

xy 的最近公共祖先。

输入输出样例

输入 #1
9
9 7
2 1
3 2
4 2
5 3
8 5
9 5
6 4
7 4
输出 #1
2

说明/提示

## 思路

「树的公共祖先(LCA)(2)」建树后 DFS/BFS 统计深度、子树或求 LCA/直径。

## 步骤

1. 读入边并建树。
2. 从根遍历更新深度、父节点或子树大小。
3. 按题意输出询问结果。