「BZOJ 5093」图的价值 题解
组合数学学不明白祭.
根据题意列出式子, 并通过第二类 Stirling 数对式子进行化简, 在合适的时间内计算出结果.
前置知识
- NTT
第二类 Stirling 数的一些性质
$m^n=\sum_{i=0}^{m} \begin{Bmatrix}n \ i\end{Bmatrix} i! \cdot \binom{m}{i}$
提供了一个计算自然数幂的新思路.$\begin{Bmatrix} n\ m\end{Bmatrix} = \sum_{i=0}^{m} \frac{(-1)^i}{i!} \frac{(m-i)^n}{(m-i)!}$
显然是一个卷积的形式, 可以在 $O(n \log n)$ 的时间复杂度计算.详尽的解释可以在这里找到: https://www.cnblogs.com/y2823774827y/p/10700231.html
题目思路
考虑单独枚举一个点的度数 $i$, 那么答案可以表示为
如何理解呢? 首先, 每个点在枚举时是等价的, 所以最终结果乘 $n$
其次, 当前点的贡献为 $i^k$, 考虑度数为 $k$, 即在剩余的 $n-1$ 个点中选择 $i$ 个点. 要求无向图无重边, 剩余的边随意, 方案数为 $2^{\frac{1}{2} (n-1)(n-2)}$.
整理, 得
现在的问题主要在后半部分, 由第二类 Stirling 数的性质, 得
改变 $i, j$ 的枚举顺序, 有
不过要注意到 $\forall m > n, \begin{Bmatrix} n \ m \end{Bmatrix} = 0$
接下来的 trick 来源于 Tiw’s Blog, 考虑右边和式的组合意义, 即在 $n-1$ 个物品中选取 $i$ 个物品, 并在 $i$ 个物品中选择 $j$ 个的方案数. 可以发现, 这样等同于在 $n-1$ 个物品中选择 $j$ 个, 剩下部分可选可不选, 这样就同 $i$ 无关了. 可得
接下来就可以写了…
先计算 $k$ 对应的第二类 Stirling 数, 之后 $O(n)$ 扫一遍统计答案. 式子中间的一项在 $j$ 增加的过程中每次只多出一个乘积, 顺手维护就好了.
最后答案
代码实现
1 | /************************************************************** |