第一二类斯特林数及斯特林反演

第一类斯特林数

符号为(egin{bmatrix} n\ m end{bmatrix}),定义是把(n)个数排成(m)个圆排列的方案数,递推式为(把第一类斯特林数简记为(S_1(n,m))):

[S_1(n,m)=S_1(n-1,m-1)+(n-1)S_1(n-1,m) ]

其中边界为
1.(S_1(0,0)=1)
2.(S_1(n,k)=0(k>n))
这个递推式可以如此理解:考虑最后一个放入的物品,它要么跟在前面的一个元素在一个圆中,要么自己新开一个圆
这个东西直接求是(O(n^2))的,怎么优化呢?考虑上述过程,也可以理解为总共进行(n)次操作,每次有(n-1)种选择不取(对应((n-1)*S_1(n-1,m))),还有(1)种选择取(对应(S_1(n-1,m-1))),最后恰好取到(m)个物品的方案数。写出它的母函数如下:

[sumlimits_{i=0}^{n-1}(x+i) ]

其中(x_i)的系数就是(S_1(n,i))
用分治+FFT可以(O(nlog^2n))(S_1(n,i))
另附两道双倍经验的神仙题:
CF960G Bandit Blues
[FJOI2016]建筑师

第二类斯特林数

符号为(egin{Bmatrix} n\ m end{Bmatrix}),定义是把(n)个不同的球放到(m)个不可区分的盒子且无空盒的方案数,递推式为(把第二类斯特林数简记为(S_2(n,m))):

[S_2(n,m)=S_2(n-1,m-1)+mS_2(n-1,m) ]

边界跟上面一样的
直接求也是(O(n^2))的,发现它有一个比较显然的容斥形式:

[S_2(n,m)=frac{1}{m!}sumlimits_{i=0}^{m}(-1)^{i}inom{m}{i}(m-i)^n ]

理解的话,就是先考虑盒子有区别,就有:(sumlimits_{i=0}^{m}(-1)^{i}inom{m}{i}(m-i)^n)种方案,把(m)个盒子无区别的限制加上,除一个(m!)就可以了(貌似也可以用二项式反演来证明它的容斥意义?)
化一下式子,把组合数拆开,并且把(m!)移到和号里面,可以得到:

[S_2(n,m)=sumlimits_{i=0}^{m}frac{(-1)^{i}}{i!}frac{(m-i)^n}{(m-i)!} ]

卷积(O(nlogn))
第二类斯特林数还有一个很妙的性质:(n^k=sumlimits_{i=0}^{n}egin{Bmatrix} k\ i end{Bmatrix}i!inom{n}{i})
附例题3道:
[HEOI2016/TJOI2016]求和
CF961G Partitions
CF932E Team Work

斯特林反演

存在以下这么一个式子:

[f(n)=sumlimits_{i=0}^{n}egin{Bmatrix} n\ i end{Bmatrix}g(i)Leftrightarrow g(n)=sumlimits_{i=0}^{n}(-1)^{n-i}egin{bmatrix} n\ i end{bmatrix}f(i)]

怎么感觉跟二项式反演辣么像!
太弱了,不会证啦,也没做相关的题。

原文地址:https://www.cnblogs.com/dummyummy/p/10458478.html