这里有比较详细的总结
https://blog.csdn.net/OwenOwl/article/details/79442341
主要就是知道斯特林数的两种表达方法,
一个是组合递推,S(i, j) = j ∗ S(i − 1, j) + S(i − 1, j − 1)
一个是容斥通项, 。
还有这个重要结论
证明的话,左边相当于n个球随便放到x个盒的方案数,右边相当于枚举放了k个盒,然后在排列的方案数。
题目:
bzoj2159 直接把k次方用斯特林数展开,然后分子树内外讨论贡献即可。
bzoj5093 本质求
∑Cin∗ik
∑
C
n
i
∗
i
k
同样用斯特林数展开k次方即可。
bzoj4555 这题我用的是递推的那个式子,把含j的提出来,然后相当于要快速求
F【i】=∑ni=jS(i,j)
F
【
i
】
=
∑
i
=
j
n
S
(
i
,
j
)
一个个展开后发现F满足递推
F【i】=i∗S(n+1,i)−F【i−1】i−1
F
【
i
】
=
i
∗
S
(
n
+
1
,
i
)
−
F
【
i
−
1
】
i
−
1
预处理S(n+1,k),然后直接O(n)递推即可。
一个奇怪的东西,斯特林公式,用于估算N!的大小
(好吧,其实和斯特林数是两码事)
具体证明这篇Blog讲得很详细:https://blog.csdn.net/ACdreamers/article/details/41451591