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

A70773. 树的公共祖先(LCA)

编程题 入门

题目描述

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

已知该树有 n 个结点,标号 1..n

输入格式

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

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

以下 n-1 行,每行两个整数 ab,表示 a 的父结点是 b

输出格式

输出 xy 的最近公共祖先 root

输入输出样例

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

说明/提示

## 思路

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

## 步骤

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