小团惹小美生气了,小美要去找小团“讲道理”。小团望风而逃,他们住的地方可以抽象成一棵有n个结点的树,小美位于x位置,小团位于y位置。小团和小美每个单位时间内都可以选择不动或者向相邻的位置转移,很显然最终小团会无路可逃,只能延缓一下被“讲道理”的时间,请问最多经过多少个单位时间后,小团会被追上。
输入第一行包含三个整数n,x,y,分别表示树上的结点数量,小美所在的位置和小团所在的位置。 接下来有n-1行,每行两个整数u,v,表示u号位置和v号位置之间有一条边,即u号位置和v号位置彼此相邻。(1<=n<=50000)
输出仅包含一个整数,表示小美追上小团所需的时间。
5 1 2 2 1 3 1 4 2 5 3
2
考点:树
数据规模 n ≤ 50000 | 限制 1 秒 / 256MB | 标准输入输出
推荐方向:树
本题切入点
两人在树上追逐,小团能拖延的最长时间取决于他能逃到的最深节点,用 BFS/DFS 求各点到小美的距离与小团的机动空间。
树结构上的遍历(DFS 求子树信息 / BFS 求层序),多数树题是「后序遍历 + 回溯」。
思路框架(树 通法 · 非本题专属)
实现要点:递归深度可能到 1e5,注意递归爆栈;必要时改迭代或调整递归深度。
复杂度:时间 O(n) | 空间 O(n)
该范式的通法易错点
对照本题
样例 1
5 1 2 / 2 1 / 3 1 / 4 2 / 5 32解析由校招宝本地引擎整理(依据源站考点标签 / 人工判题标注 / 题面规模信号),非官方题解,仅供思路参考。
本题来源:美团2023校招技术第4场编程题。