斯特林数,斯特林反演初探

基础定义

斯特林树分成两类,

  • 第一类:将 $n$ 个元素划分成 $m$ 个圆排列的方案数量。计做 $\left[\begin{array}{l}
    n \\
    m
    \end{array}\right]$

    递推式是由于,考虑我们加入第 $n$ 个元素的时候,可以新开一个圆排列,也可以加入到之前任何一个数的后面的位置。

  • 第二类:将 $n$ 个元素划分成为 $m$ 个集合的方案数量。计做 $\left\{\begin{array}{l}n \\m\end{array}\right\}$

    递推式是由于,考虑我们加入第 $n$ 个元素的时候,可以新开一个集合,也可以加入到之前任何一个集合。

    同时它可以写成展开式:

    我们考虑一个容斥,由于最终目标是让 $n$ 个集合划分成 $m$ 个集合,显然不能有空的。我们可以枚举一下假设有 $k$ 个集合是空的,那么方案数量就是 $(m-k)^n$ ,我们想要选择集合的方案数量是 $m \choose k$ ,容斥系数是 $(-1)^k$ ,当然,这个是具有顺序的,实际上是没有顺序的方案个数,所以还需要去个顺序。

引理 & 推论

首先是正常幂转下降幂,用到的是第二类斯特林数:

考虑 $n^m$ 的组合意义,就是选择 $m$ 轮,每轮选择一个 $1\sim n$ 的数,可以选择相同的数。我们考虑枚举不同数的个数,然后把 $m$ 个位置分配给不同数,接着再确定这些集合的标号(因为斯特林数集合是无标号的)。

然后是上升幂转正常幂

我也证不来。可以用数学归纳法证明。

扒过来 lsj 爷爷的证明

然后是重要的俩反转公式

证明就用前面两个东西推一下大概就好了。。

斯特林反演

终于进入正题辣!

这看着很吓人的式子其实很好推的啦。。

随便挑一个来证,比如挑第二个,把 $g$ 写成

然后直接带入反转公式

其他三个变化的无非就是,选择哪一个反转公式,反转公式是 $[n=k]$ 还是 $[k=n]$ 的问题。。。

例题

其实是一个再放送

CF1278F Cards

我也不知道公式挂没有,还是建议在 luogu 博客或者下面的链接里面查看。

一道斯特林数的模版练手题。不会可以看 这里

我们考虑枚举出现了多少次王牌,出现 $i$ 次王牌的概率,可以从 $n$ 轮操作选择 $i$ 轮抽出王牌,写成式子:

最后一步用到了以前写过的那个组合恒等式,就是从 $n$ 个选 $i$ 个再选 $j$ 个,本质上等价于 $n$ 个先选择好 $j$ 个,再从剩下的 $n-j$ 个选择第一步应当选择的 $i-j$ 个。

然后可以看出最后面其实是个二项式定理!

然后可以很简便地写 $O(k^2)$ 了,也可以预处理第二类斯特林数的行 $O(k\log k)$ 做。可以去看 这里 的题解。

文章作者: yijan
文章链接: https://yijan.co/si-te-lin-shu-si-te-lin-fan-yan-chu-tan/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Yijan's Blog