#P9210. 蓬莱「凯风快晴 −富士火山−」
蓬莱「凯风快晴 −富士火山−」
题目背景
富士山,被当地人称为「神山」。这是一座休眠火山,最近一次喷发在 年前。
向这样的山中投入不死之药,想必会直接喷发吧。如此便理解为什么月岩笠最终抗命。
题目描述
所谓的山,是一种上细下粗的结构。能不能在「树」里也找到这样的结构呢?
给定一个以 为根的大小为 的有根树 。你需要找到满足宽度单调不减的导出子树中最大的一棵:
- 记该导出子树为 ,共有 层。
- 记 的根节点的深度为 ,计算出 中每个结点的深度 。由此定义 第 层的宽度 为「所有深度为 的节点的个数」。
- 你需要使得 单调不减。即,。
记原树的点集和边集分别为 。导出子树是原树的一个连通块,它的点集 ,边集 是 当中所有端点均在 内的边。导出子树的根,是组成它的所有节点中在原树内深度最浅的那一个。 也可以被认为是自身的一棵导出子树。
如图所示,绿色的区域和橙色的区域分别是原树的导出子树。它们的根分别为 和 。
注意:导出子树的定义略微不同于子树的定义。请不要将两者混淆。
请找到最大的符合条件的导出子树的大小。
输入格式
第一行一个正整数 ,表示整棵树的大小。
接下来 行,每行两个整数 ,描述树上的一条边。
输出格式
输出共一行一个整数,表示最大的符合条件的导出子树的大小。
10
1 2
2 3
3 4
3 5
2 6
6 7
1 8
8 9
8 10
9
17
1 2
2 3
3 4
4 5
4 6
3 7
7 8
7 9
7 10
2 11
2 12
1 13
13 14
14 15
14 16
13 17
16
提示
样例解释
如图所示,标灰的节点是两个样例中选出来的导出子树。
- 样例 找到的导出子树,每一层的宽度分别为 。
- 样例 找到的导出子树,每一层的宽度分别为 。
数据范围及约定
对于全部数据,。