目录

球盒模型

# 1. 什么是球盒模型

有 n 个球、m 个盒子,将所有球无顺序地放入盒子中,求方案数。

其中,可能有球与球有无区别、盒与盒有无区别的情况,这些情况按列枚举;每个盒子对球的个数有一定限制,这些情况按行枚举。

# 2. 球盒模型汇总

假设有 n 个球、m 个盒子。

球同盒同 球同盒异 球异盒同 球异盒异
可空 高斯系数 Cn+m1m1C_{n+m-1}^{m-1} i=1mS2(n,i)\sum_{i=1}^{m}S_2(n,i) mnm^n
非空 高斯系数 Cn1m1C_{n-1}^{m-1} S2(n,m)S_2(n,m) m!S2(n,m)m!S_2(n,m)
可空容量有上限 k 高斯系数(1) 容斥(2) ? ?
有下限 k 高斯系数 Cn+mkn1m1C_{n+m-kn-1}^{m-1} ? DP(3)

(1) 高斯系数,[xn](m+km)x=[xn]i=1m1xi+k1xi[x^n]\displaystyle\dbinom{m+k}{m}_x=[x^n]\prod_{i=1}^{m}\dfrac{1-x^{i+k}}{1-x^i}

(2) 容斥,枚举超出限制的盒子数,i=0m(1)i(mi)(ni(k+1)+m1m1)\displaystyle\sum_{i=0}^m(-1)^i\dbinom{m}{i}\dbinom{n-i(k+1)+m-1}{m-1}

(3) DP,dp[i][j]dp[i][j] 表示前 i 个盒子放了 j 个球的方案数,O(m2k2)O(m^2k^2)

最后,恳求路过的大佬来完善内容!