有 n 个球、m 个盒子,将所有球无顺序地放入盒子中,求方案数。
其中,可能有球与球有无区别、盒与盒有无区别的情况,这些情况按列枚举;每个盒子对球的个数有一定限制,这些情况按行枚举。
假设有 n 个球、m 个盒子。
球同盒同 | 球同盒异 | 球异盒同 | 球异盒异 | |
---|---|---|---|---|
可空 | 高斯系数 | Cn+m−1m−1 | ∑i=1mS2(n,i) | mn |
非空 | 高斯系数 | Cn−1m−1 | S2(n,m) | m!S2(n,m) |
可空容量有上限 k | 高斯系数(1) | 容斥(2) | ? | ? |
有下限 k | 高斯系数 | Cn+m−kn−1m−1 | ? | DP(3) |
(1) 高斯系数,[xn](mm+k)x=[xn]i=1∏m1−xi1−xi+k。
(2) 容斥,枚举超出限制的盒子数,i=0∑m(−1)i(im)(m−1n−i(k+1)+m−1)。
(3) DP,dp[i][j] 表示前 i 个盒子放了 j 个球的方案数,O(m2k2)。
最后,恳求路过的大佬来完善内容!