斯特林数学习笔记 P4827 [国家集训队] Crash 的文明世界

这个东西非常有名,大家应该了解过一点,但是它的具体应用也有很多。


第一类斯特林数

对于$s_u(n,m)$,它表示$n$个不同元素构成$m$个圆排列的方案数。

递推公式:$s_u(n,m)=s_u(n-1,m-1)+(n-1)s_u(n-1,m)$

这个递推公式的意义很明显,就是讨论第$n$个元素是自己作为一个圆排列还是前面插到任意一个数的后面。

这个东西的应用比较少,我们还是看第二类。


第二类斯特林数

对于$S(n,m)$,它表示$n$个不同元素构成$m$个非空集合的方案数。

递推公式:$S(n,m)=S(n-1,m-1)+mS(n-1,m)$(这个跟第一类的差不多)

通项公式:$$S(n,m)=\frac{1}{m!}\sum_{k=0}^m(-1)^kC_{m}^k(m-k)^n$$

我们发现这个东西就是一个卷积,所以我们可以在$O(n\log n)$的复杂度内求出$S(n,0),S(n,1),\ldots,S(n,n)$

这个就不讲了,后面的题目直接用递推公式就可以了。


$$x^k=\sum_{i=0}^ki!S(k,i)C_{x}^i$$

这个东西我们可以通过组合意义来证明。

左边是$x$个不同元素放进$k$个不同集合的方案数(可以是空集),右边是枚举非空集合$i$个,首先选$i$个集合,然后排列,然后再将元素放进去。

这个式子的应用非常多。

P4827 [国家集训队] Crash 的文明世界

[GDOI2019] 滑稽子图(还没写)

猜你喜欢

转载自www.cnblogs.com/AThousandMoons/p/10492698.html