简要题意.
给定一棵 $n$ 个点的树,求点分树方案数。
$n \le 5000$。
考虑连一条边 $(u, v)$ 导致点分树合并的过程,事实上与一般的数据结构合并是一致的:传入两个根结点,并考虑选择一个成为最后的根结点,将剩下的部分沿着 $u, v$ 所在的链递归。
因此,我们只需要记状态 $f_{u, i}$ 表示 $u$ 子树内的点分树,$u$ 的深度为 $i$ 的方案数。
转移时先对儿子的 DP 数组做后缀和,再合并。时间复杂度 $O(n^2)$。
Type: Editorial
Status: Open
Posted by: Qingyu
Posted at: 2026-01-28 02:23:06
Last updated: 2026-01-28 02:23:18
简要题意.
给定一棵 $n$ 个点的树,求点分树方案数。
$n \le 5000$。
考虑连一条边 $(u, v)$ 导致点分树合并的过程,事实上与一般的数据结构合并是一致的:传入两个根结点,并考虑选择一个成为最后的根结点,将剩下的部分沿着 $u, v$ 所在的链递归。
因此,我们只需要记状态 $f_{u, i}$ 表示 $u$ 子树内的点分树,$u$ 的深度为 $i$ 的方案数。
转移时先对儿子的 DP 数组做后缀和,再合并。时间复杂度 $O(n^2)$。