CF1408G 题解

题意

传送门

给定 \(n\) 个点的带权无向完全图,点 \(i, j\) 之间的权值为 \(a_{i, j}\),权值是一个 \(1 \sim \frac{n(n-1)}{2}\) 的排列。

计数把原图划分成 \(k\) 个组的方案数,满足:

对于任意的 \((s, f), (x, y)\),其中 \(s, f, x\) 同组\(y\)\(x\) 不同组\(s \ne f, x \ne y\)),\(a_{s, f} < a_{x, y}\),即(对于每个组)组间边大于组内边。

输出一行 \(n\) 个数,对于 \(k \in [1, n]\) 求出答案,对 \(998244353\) 取模。

\(1 \le n \le 1500\)

题解

要求组间边大于组内边,显然可以隔离每组,单独考虑性质。

不难发现一个连通块可以成为“组”的充要条件:若从小到大加入边,其成为团前,不与外界接触。

这个过程可以用 \(\operatorname{kruskal}\) 重构树实现。于是我们得到了可以成为“组”的所有连通块,个数当然是 \(O(n)\) 的。

答案要求将原图划分成 \(k\) 组,每组都可行的方案数。考虑重构树的特点,连通块与节点是一一对应的。选一个点就是选其对应的连通块。“划分”则等于没有叶子结点与根相连。

于是直接在重构树上做树形 \(\operatorname{dp}\) (树上背包?)即可。复杂度 \((n^2)\)

posted @ 2022-12-15 19:31  realFish  阅读(26)  评论(0)    收藏  举报