1.球同,盒不同(无空盒)
$n$个球之间有$n-1$个空隙,分成$m$个盒子则插入$m-1$块板,且不能在同一地方插入多块板子。
则有$C_{n-1}^{m-1}$
2.球同,盒不同,允许空箱
我们可以先假设$m$个盒子里都放好了1个球,所以说白了就是,现在有$m+n$个相同的球,要放入$m$个不同的箱子,没有空箱
则有$C_{n+m-1}^{m-1}$
3.球不同,盒相同,无空箱
第二类斯特林数
dp[n][m]
dp[n][m]=m*dp[n-1][m]+dp[n-1][m-1],1<=m<n
dp[k][k]=1,k>=0
dp[k][0]=0,k>=1
0,n<m
对于第n个球,如果前面的n-1个球已经放在了m个箱子里,那么现在第n个球放在哪个箱子都是可以的,所以m*dp[n-1][m];
如果前n-1个球已经放在了m-1个箱子里,那么现在第n个球必须要新开一个箱子来存放,所以dp[n-1][m-1]
4.球不同,盒相同,允许空箱
$\sum_{i=1}^m dp[n][i],0<=i<=m,dp[n][m]$
这种情况就是在第3种情况的前提下,去枚举使用的箱子的个数
5.球不同,盒不同,无空箱
dp[n][m]*fact[m],dp[n][m]为情况3的第二类斯特林数,fact[m]为m的阶乘
因为球是不同的,所以dp[n][m]得到的盒子相同的情况,只要再给盒子定义顺序,就等于现在的答案了
6.球不同,盒不同,允许空箱
$m^n$
7.球同,盒同,允许空箱
dp[n][m]=dp[n][m-1]+dp[n-m][m], n>=m
dp[n][m]=dp[n][m-1], n<m
边界dp[k][1]=1,dp[1][k]=1,dp[0][k]=1
现在有$n$个球,和$m$个箱子,我可以选择在所有箱子里面都放上1个球,也可以不选择这个操作。
如果选择了这个操作,那么就从$dp[n-m][m]$转移过来
如果没有选择这个操作,那么就从$dp[n][m-1]$转移过来
8.球同,盒同,无空箱
dp[n-m][m],dp同第7种情况,n>=m
0, n<m
因为要求无空箱,我们先在每个箱子里面放1
个球,然后还剩下n-m
个球了,再根据情况7答案就出来了
$基本上盒相同都需要考虑DP$