放球整理

放球整理

\(n\) 个不同球放入 \(m\)? 个相同盒子里,不能空盒

这种情况就是第二类 Stirling 数,即 \(S(n, m)\)

其递推公式如下:

\(f_{n,m} = f_{n - 1, m -1} + m \times f_{n - 1, m}\)

递推边界:

\(f_{n,m} = 0 (n < 0)\)

\(f_{n,n} = f_{n,1} = 1\)?

\(n\) 个不同球放入 \(m\)? 个相同盒子里,可以空盒

这种情况,答案为 \(\sum_{i=1}^m S(n,i)\)


\(n\) 个相同球放入 \(m\)? 个不同盒子里,不能空盒

这种情况直接组合数。答案等于 \(C_{n-1}^{m-1}\)????。注意 C++ 算乘的时候可能会溢出,可以在中间使用 int_128 辅助计算。

\(n\) 个相同球放入 \(m\)? 个不同盒子里,可以空盒

同上,但答案等于 \(C_{n+m-1}^{m-1}\)?。


\(n\) 个不同球放入 \(m\)?? 个不同盒子里,不能空盒

答案为 \(n! \times S(n,m)\)(第二类 Stirling 数)。

\(n\) 个不同球放入 \(m\) 个不同盒子里,可以空盒

答案直接就为 \(m^n\)

放球整理

上一篇:45、什么情况下会调用拷贝构造函数


下一篇:TZHSPC 2021 比赛题解