2024.7.9 鲜花

頭ン痛 - feat. 重音テト

我没找到 QaQ

prufer 序列,简单来说就是 \(n\) 个节点的树双射一个长度 \(n-2\) 值域 \([1,n]\) 的序列。

构造过程就是每次删一个编号最小叶子,记录其父节点。

本图来自baoziwu2,侵删

显然堆 \(n\log n\) 可做,也可以扫一遍所有标号,对于已经删除的父节点,判断其度数和标号是否该选,分讨可做 \(O(n)\)

然后有定理:

\(k\) 个点完全图有 \(k^{k-2}\) 棵生成树。

\(n\) 个点的图有 \(k\) 个联通块,第 \(i\) 个联通块点数为 \(s_i\) ,添加 \(k-1\) 条边使其联通,有 \(n^{k-2}\times \prod\limits_{i=1}^ks_i\) 种方案。

证明可以考虑缩点后为生成树,考虑每个联通块内的点个数,可以得到。

例题 P6596 How Many of Them

updata:找到板子了 CF156D

简要题解

首先将至多容斥成至少,然后考虑可以先求出有 \(m+1\) 个连通块的个数,可以 dp,在加 \(m\) 条边联通,乘上 \(n^{k-2}\times \prod\limits_{i=1}^ks_i\) 即可。

直接 \(DP\)\(n^3\),可以用多项式优化到 \(n^2\log n\),但我不会

图——from STA_Morlin 为什么不让折叠捏???

posted @ 2024-07-09 07:50  xrlong  阅读(39)  评论(0编辑  收藏  举报