CSP初赛复习-30-球盒问题
球盒问题
球盒问题是把n个小球放入m个盒子中,有多种中不同的方法
球盒问题涉及3个关键因素
小球是否相同
盒子是否相同
是否允许为空
根据上述3个关键因素,球盒问题一共8种类型
1 n个相同小球,m个相同盒子,允许有空盒子
2 n个相同小球,m个相同盒子,不允许空盒子
3 n个相同小球,m个不同盒子,不允许空盒子
4 n个相同小球,m个不同盒子,允许有空盒子
5 n个不同小球,m个相同盒子,不允许空盒子
6 n个不同小球,m个相同盒子,允许有空盒子
7 n个不同小球,m个不同盒子,不允许空盒子
8 n个不同小球,m个不同盒子,允许有空盒子
上述8种类型,大概分为三类
1 同球同盒
n个相同小球,m个相同盒子,允许有空盒子
例题
5个相同小球,放入3个相同盒子,允许空盒子,问有多少种不同的放法?
分析
解题思路 -枚举-非递减整数枚举
1个盒子
5
2个盒子
1 4
2 3
3个盒子
1 1 3
1 2 2
总共有 1 + 2 + 2 =5 种不同的放法
解题思路 -递推求解,具体参考
P2386 放苹果
https://www.luogu.com.cn/problem/P2386
n个相同小球,m个相同盒子,不允许空盒子
例题
5个相同小球,放入3个相同盒子,不允许空盒子,问有多少种不同的放法?
分析
解题思路 -枚举-非递减整数枚举
3个盒子都放
1 1 3
1 2 2
总共有2种放法
解题思路 -递推求解,具体参考
P1025 [NOIP2001 提高组] 数的划分
https://www.luogu.com.cn/problem/P1025
2 同球异盒
n个相同小球,m个不同盒子,不允许空盒子
例题
5个相同小球,放入3个不同盒子,不允许空盒子,问有多少种不同的放法?

分析
解题思路 -隔板法
5个小球中间有4个空,用2个隔板分成3部分后分别放入3个盒子
C(5-1,4-1)=C(4,2)=4*3/2!=6
n个相同小球,m个不同盒子,允许有空盒子
借助虚拟球,每个盒子先放入一个球,就等同于盒子不为空
例题
5个相同小球,放入3个不同盒子,允许空盒子,问有多少种不同的放法?
分析
解题思路 - 虚拟球+隔板法
借助3个虚拟球,此题转化为
8个相同小球,3个不同盒子,不允许空盒子
8个小球中间有4个空,用2个隔板分成3部分后分别放入3个盒子
C(8-1,4-1)=C(7,2)=7*6/2!=21
3 异球
解题思路
第二类斯特林数,具体参考
CSP初赛复习-30-第二类斯特林数
https://www.cnblogs.com/myeln/articles/17666030.html
5 n个不同小球,m个相同盒子,不允许空盒子
6 n个不同小球,m个相同盒子,允许有空盒子
7 n个不同小球,m个不同盒子,不允许空盒子
8 n个不同小球,m个不同盒子,允许有空盒子
CSP初赛复习-30-第二类斯特林数-练习题
作者:newcode 更多资源请关注纽扣编程微信公众号

从事机器人比赛、机器人等级考试、少儿scratch编程、信息学奥赛等研究学习

浙公网安备 33010602011771号