排列组合 "n个球放入m个盒子m"问题 总结
2016-02-12 15:11
337 查看
求,盒子都可以分成是否不能区分,和能区分,还能分成是否能有空箱子,所以一共是8种情况,我们现在来一一讨论。
1.球同,盒不同,无空箱
C(n-1,m-1), n>=m
0, n<m
使用插板法:n个球中间有n-1个间隙,现在要分成m个盒子,而且不能有空箱子,所以只要在n-1个间隙选出m-1个间隙即可
2.球同,盒不同,允许空箱
C(n+m-1,m-1)
我们在第1类情况下继续讨论,我们可以先假设m个盒子里都放好了1个球,所以说白了就是,现在有m+n个相同的球,要放入m个不同的箱子,没有空箱。也就是第1种情况
3.球不同,盒相同,无空箱
第二类斯特林数dp
[m]
dp
[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.球不同,盒相同,允许空箱
sigma dp
[i],0<=i<=m,dp
[m]为情况3的第二类斯特林数
这种情况就是在第3种情况的前提下,去枚举使用的箱子的个数
5.球不同,盒不同,无空箱
dp
[m]*fact[m],dp
[m]为情况3的第二类斯特林数,fact[m]为m的阶乘
因为球是不同的,所以dp
[m]得到的盒子相同的情况,只要再给盒子定义顺序,就等于现在的答案了
6.球不同,盒不同,允许空箱
power(m,n) 表示m的n次方
每个球都有m种选择,所以就等于m^n
7.球同,盒同,允许空箱
dp
[m]=dp
[m-1]+dp[n-m][m], n>=m
dp
[m]=dp
[m-1], n<m
边界dp[k][1]=1,dp[1][k]=1,dp[0][k]=1
现在有n个球,和m个箱子,我可以选择在所有箱子里面都放上1个球,也可以不选择这个操作。
如果选择了这个操作,那么就从dp[n-m][m]转移过来
如果没有选择这个操作,那么就从dp
[m-1]转移过来
8.球同,盒同,无空箱
dp[n-m][m],dp同第7种情况,n>=m
0, n<m
因为要求无空箱,我们先在每个箱子里面放1个球,然后还剩下n-m个球了,再根据情况7答案就出来了
如果有错误,希望菊苣指出~
转载请注明出处...
1.球同,盒不同,无空箱
C(n-1,m-1), n>=m
0, n<m
使用插板法:n个球中间有n-1个间隙,现在要分成m个盒子,而且不能有空箱子,所以只要在n-1个间隙选出m-1个间隙即可
2.球同,盒不同,允许空箱
C(n+m-1,m-1)
我们在第1类情况下继续讨论,我们可以先假设m个盒子里都放好了1个球,所以说白了就是,现在有m+n个相同的球,要放入m个不同的箱子,没有空箱。也就是第1种情况
3.球不同,盒相同,无空箱
第二类斯特林数dp
[m]
dp
[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.球不同,盒相同,允许空箱
sigma dp
[i],0<=i<=m,dp
[m]为情况3的第二类斯特林数
这种情况就是在第3种情况的前提下,去枚举使用的箱子的个数
5.球不同,盒不同,无空箱
dp
[m]*fact[m],dp
[m]为情况3的第二类斯特林数,fact[m]为m的阶乘
因为球是不同的,所以dp
[m]得到的盒子相同的情况,只要再给盒子定义顺序,就等于现在的答案了
6.球不同,盒不同,允许空箱
power(m,n) 表示m的n次方
每个球都有m种选择,所以就等于m^n
7.球同,盒同,允许空箱
dp
[m]=dp
[m-1]+dp[n-m][m], n>=m
dp
[m]=dp
[m-1], n<m
边界dp[k][1]=1,dp[1][k]=1,dp[0][k]=1
现在有n个球,和m个箱子,我可以选择在所有箱子里面都放上1个球,也可以不选择这个操作。
如果选择了这个操作,那么就从dp[n-m][m]转移过来
如果没有选择这个操作,那么就从dp
[m-1]转移过来
8.球同,盒同,无空箱
dp[n-m][m],dp同第7种情况,n>=m
0, n<m
因为要求无空箱,我们先在每个箱子里面放1个球,然后还剩下n-m个球了,再根据情况7答案就出来了
如果有错误,希望菊苣指出~
转载请注明出处...
相关文章推荐
- POJ 2635 The Embarrassed Cryptographer(素数线性筛法)
- LeetCode 292. Nim Game
- +号操作符
- 树型结构
- hrbust 哈理工oj 1752Page Rank【线段树好题】
- 01背包的学习
- 方法的重载
- 用i个点组成高度为不超过j的二叉树的数量。
- 写给五年后的自己2021
- HDU-1010-Tempter of the Bone( DFS + 深度优先搜索 )
- Temporary Post Used For Theme Detection (387b0fac-cc76-4eb9-8534-75ac8425eec1 - 3bfe001a-32de-4114-a6b4-4005b770f6d7)
- android中view控件的setTag()和getTag()用法和功能介绍
- JSF导出excel文件文件名使用中文,支持linux
- Educational Codeforces Round 7 E. Ants in Leaves 贪心
- 类名引用static变量好处
- List集合去重的一种方法 z
- JVM体系结构
- JQuery——插件的开发和使用(一)
- Volley学习记录(三)
- 可以输入的下拉框,可以筛选内容,可输入筛选下拉框(原创)