P9896 [ICPC2018 Qingdao R] Sub-cycle Graph
小清新计数题,但我为什么不会呢???
题意
对满足以下条件的 \(n\) 点 \(m\) 边无向简单图计数,对 \(10^9+7\) 取模。
- 存在一种方案使得添加若干条边后该图能变成一个简单环。
\(n\le 10^5,\sum n\le 3\times10^7,m\le \frac{n(n-1)}{2}\)
分析
首先 \(m\) 没啥用,因为 \(m>n\) 一定无解,然后 \(m=0\) 答案为 1,\(m=n\) 答案为 \(\dfrac{(n-1)!}{2}\)(注意一个环会被正反算两遍)。原题转化为将图分成 \(k=n-m\) 条链的方案数。
考虑先用 \(n!\) 种方案把点赋上编号,然后用插板法将所有点分成 \(k\) 份,首先每种分法会被算 \(k!\) 次,其次每个二元以上链会被正反算两次,再除以 \(2^{cnt}\),其中 \(cnt\) 表示长度 \(\ge 2\) 的链的数量。考虑枚举孤点的数量 \(i\),首先选孤点的方案数为 \(\dbinom{n}{i}\),然后 \(cnt\) 被固定成 \(k-i\),再套用上述做法即可。注意此时插板要求板间元素数 \(\ge 2\),可以强制钦定每个块内自带一个元素,然后转化为非空插板问题。
最终式子:\(\sum_{i=0}^k n!\dbinom{n}{i}\dfrac{\dbinom{n-k-1}{k-i-1}}{2^{k-i}(k-i)!}\)
时间复杂度线性。

浙公网安备 33010602011771号