蓬莱「凯风快晴 −富士火山−」

Luogu
IDLGP9210
Time1000ms
Memory128MB
DifficultyP5
树形 DP传智杯单调栈
所谓的山,是一种上细下粗的结构。能不能在「树」里也找到这样的结构呢? 给定一个以 $1$ 为根的大小为 $n$ 的有根树 $T$。你需要找到满足宽度单调不减的**导出子树**中最大的一棵: - 记该导出子树为 $T_0$,共有 $k$ 层。 - 记 $T_0$ 的根节点的深度为 $1$,计算出 $T_0$ 中每个结点的深度 $d_i$。由此定义 $T_0$ 第 $i$ 层的宽度 $w_i$ 为「所有深度为 $i$ 的节点的个数」。 - 你需要使得 $w_i$ 单调不减。即,$w_1\le w_2\le \cdots \le w_k$。 记原树的点集和边集分别为 $V,E$。导出子树是原树的一个**连通块**,它的点集 $V_0\subseteq V$,边集 $E_0$ 是 $E$ 当中所有端点均在 $V_0$ 内的边。导出子树的根,是组成它的所有节点中**在原树内深度最浅的那一个**。$T$ 也可以被认为是自身的一棵导出子树。 ![](https://cdn.luogu.com.cn/upload/image_hosting/wcbeo1a0.png) 如图所示,绿色的区域和橙色的区域分别是原树的导出子树。它们的根分别为 $2$ 和 $13$。 **注意**:导出子树的定义略微不同于子树的定义。请不要将两者混淆。 请找到最大的符合条件的导出子树的大小。 ## Input 第一行一个正整数 $n$,表示整棵树的大小。 接下来 $n-1$ 行,每行两个整数 $u,v$,描述树上的一条边。 ## Output 输出共一行一个整数,表示最大的符合条件的导出子树的大小。 [samples] ## Background 富士山,被当地人称为「神山」。这是一座休眠火山,最近一次喷发在 $300$ 年前。 向这样的山中投入不死之药,想必会直接喷发吧。如此便理解为什么月岩笠最终抗命。 ## Note ### 样例解释 ![](https://cdn.luogu.com.cn/upload/image_hosting/pzq47a3e.png) 如图所示,标灰的节点是两个样例中选出来的导出子树。 - 样例 $1$ 找到的导出子树,每一层的宽度分别为 $\{1,2,3,3\}$。 - 样例 $2$ 找到的导出子树,每一层的宽度分别为 $\{1,2,4,4,5\}$。 ### 数据范围及约定 对于全部数据,$1\le n\le 5\times 10^5$。
Samples
Input #1
10
1 2
2 3
3 4
3 5
2 6
6 7
1 8
8 9
8 10
Output #1
9
Input #2
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
Output #2
16
API Response (JSON)
{
  "problem": {
    "name": "蓬莱「凯风快晴 −富士火山−」",
    "description": {
      "content": "所谓的山,是一种上细下粗的结构。能不能在「树」里也找到这样的结构呢? 给定一个以 $1$ 为根的大小为 $n$ 的有根树 $T$。你需要找到满足宽度单调不减的**导出子树**中最大的一棵: - 记该导出子树为 $T_0$,共有 $k$ 层。 - 记 $T_0$ 的根节点的深度为 $1$,计算出 $T_0$ 中每个结点的深度 $d_i$。由此定义 $T_0$ 第 $i$ 层的宽度 $w_i$ 为",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 1000,
      "memory_limit": 131072
    },
    "difficulty": {
      "LuoguStyle": "P5"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGP9210"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "所谓的山,是一种上细下粗的结构。能不能在「树」里也找到这样的结构呢?\n\n给定一个以 $1$ 为根的大小为 $n$ 的有根树 $T$。你需要找到满足宽度单调不减的**导出子树**中最大的一棵:\n\n- 记该导出子树为 $T_0$,共有 $k$ 层。\n- 记 $T_0$ 的根节点的深度为 $1$,计算出 $T_0$ 中每个结点的深度 $d_i$。由此定义 $T_0$ 第 $i$ 层的宽度 $w_i$ 为...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments