小球遇上盒子的八种模型

现在有 n n n个球, m m m个盒子

Ⅰ . 球 同 , 盒 不 同 , 无 空 箱 \color{Red}Ⅰ.球同,盒不同,无空箱 .,,

那么 n n n个球形成了 n − 1 n-1 n1个间隙,于是可以用 m − 1 m-1 m1个隔板分成 m m m

方案数是 C n − 1 m − 1 C_{n-1}^{m-1} Cn1m1,其中 n > = m n>=m n>=m

Ⅱ . 球 同 , 盒 不 同 , 允 许 空 箱 \color{Red}Ⅱ.球同,盒不同,允许空箱 .,,

相当于多加 m m m个球预先给 m m m个盒子每个放一个,这样保证了无空箱

于是现在又转化为 Ⅰ Ⅰ ,同样利用隔板法(最后把每个盒子去掉一个球是等价的)

方案数是 C n + m − 1 m − 1 C_{n+m-1}^{m-1} Cn+m1m1

Ⅲ . 球 不 同 , 盒 不 同 , 允 许 空 箱 \color{Red}Ⅲ.球不同,盒不同,允许空箱 .,,

这个最简单了,相当于每个球都有 m m m种放法

方案数是 m n m^n mn

下面的五种模型都是第二类斯特灵数的变种

Ⅳ . 球 不 同 , 盒 同 , 无 空 箱 \color{Red}Ⅳ.球不同,盒同,无空箱 .,,

①.递推法

这就是斯特灵数,定义 f [ i ] [ j ] f[i][j] f[i][j]表示 i i i个球 j j j个盒子的方案

f [ i ] [ j ] = f [ i − 1 ] [ j − 1 ] + j ∗ f [ i − 1 ] [ j ] f[i][j]=f[i-1][j-1]+j*f[i-1][j] f[i][j]=f[i1][j1]+jf[i1][j]

当第 i i i个球新开一组时,毫无疑问是 f [ i − 1 ] [ j − 1 ] f[i-1][j-1] f[i1][j1],不需要系数因为每个盒子都一样

当第 i i i个球放在前面某一组,有 j j j个盒子可选,所以是 j ∗ f [ i − 1 ] [ j ] j*f[i-1][j] jf[i1][j]

边界是 f [ 0 ] [ 1 ] = 1 f[0][1]=1 f[0][1]=1,这样可以在 O ( n 2 ) O(n^2) O(n2)的时间内转移

②.容斥法

f [ n ] [ m ] = 1 m ! ∑ k = 0 m ( − 1 ) k C m k ( m − k ) n f[n][m]=\frac{1}{m!}\sum\limits_{k=0}^{m}(-1)^kC_m^k(m-k)^n f[n][m]=m!1k=0m(1)kCmk(mk)n

意思是先考虑盒子不同的答案,所以前面乘以 1 m ! \frac{1}{m!} m!1抵消

然后枚举盒子为空的个数, C m k C_m^k Cmk选出 k k k个为空的盒子

那么现在剩下 ( m − k ) (m-k) (mk)个盒子,也就是 ( m − k ) n (m-k)^n (mk)n

似乎这个式子可以用 F F T FFT FFT加速,下次学了来补…(不鸽)

Ⅴ . 球 不 同 , 盒 不 同 , 无 空 箱 \color{Red}Ⅴ.球不同,盒不同,无空箱 .,,

只是盒子多了有序性而已,答案是 m ! ∗ f [ n ] [ m ] m!*f[n][m] m!f[n][m]

Ⅵ . 球 不 同 , 盒 同 , 允 许 空 箱 \color{Red}Ⅵ.球不同,盒同,允许空箱 .,,

枚举用了多少盒子累加即可 ∑ i = 1 m f [ n ] [ i ] \sum\limits_{i=1}^mf[n][i] i=1mf[n][i]

Ⅶ . 球 同 , 盒 同 , 允 许 空 箱 \color{Red}Ⅶ.球同,盒同,允许空箱 .,,

定义 d p [ i ] [ j ] dp[i][j] dp[i][j] i i i个球, j j j个盒子的方案数

i = 0 ∣ ∣ j = = 1 i=0||j==1 i=0j==1,自然 d p [ i ] [ j ] = 1 dp[i][j]=1 dp[i][j]=1

若球小于盒子 i < j i<j i<j,有 d p [ i ] [ j ] = d p [ i ] [ i ] dp[i][j]=dp[i][i] dp[i][j]=dp[i][i]

若球大于盒子 i > = j i>=j i>=j,有 d p [ i ] [ j ] = d p [ i − j ] [ j ] + d p [ i ] [ j − 1 ] dp[i][j]=dp[i-j][j]+dp[i][j-1] dp[i][j]=dp[ij][j]+dp[i][j1]

因为可以在每个盒子上放一个小球,这样不改变相对大小,方案 d p [ i − j ] [ j ] dp[i-j][j] dp[ij][j]

也可以暂时不在这个位置放球,方案是 d p [ i ] [ j − 1 ] dp[i][j-1] dp[i][j1]

Ⅷ . 球 同 , 盒 同 , 无 空 箱 \color{Red}Ⅷ.球同,盒同,无空箱 .,,

和第Ⅶ种情况类似,无空箱就是 d p [ n − m ] [ m ] dp[n-m][m] dp[nm][m]

也就是预先给每个盒子放一个球.

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值