参考文档->。
因为搞初赛时一直很懵逼于是就随便写了一点 :)
1.简单问题
约束:
元素无差异,容器(组别)有差异,每个容器(组别)不能为空(相当于没限制)。
问题:
例1:将10个相同小球放入3个不同箱子,每个箱子至少一个,问方案数?
解析:O[]O[]O[]O[]O[]O[]O[]O[]O[]O
,10个小球排成一排,中间有9个空,现在分成3份,相当于选2个隔板,所以方案数为(C_9^2=36)种。
总结:
ps:为了方便下面的描述,将本问题用二元组(Base(n,b))表示,意义是将n个相同的球放入b个不同箱子中,每个箱子不能为空的方案数。
通式为(Base(n,b)=C_{n-1}^{b-1}),意义是在n-1个板子中选择b-1个。
2.变式-凑元素法
约束:
元素无差异,容器(组别)有差异,容器(组别)可以为空或有个数限制。
问题:
例1:将10个相同小球放入3个不同箱子,可以有箱子为空,问方案数?
解析
这个问题其实等价于
Base(13,3)
。如何理解呢?拿13个球去填,保证每个箱子都有一个球,那么会有10个余下的球可以随便填,而这就等价于我们当前的问题。所以答案为(C_{12}^2=66)种。
例2:一共16个一样的苹果,要分给4只编号分别为1,2,3,4的猴子,要求每只猴子的苹果数不少于他们各自的编号,问方案数?
解析
预先分给第1只猴0个,第2只猴子1个,第3只猴子2个,第4只猴子3个。这样还剩下10个苹果随便分,问题等价于
Base(10,4)
所以答案为(C_9^3=84)。
例3:把10个相同小球放入3个不同箱子,第一个箱子至少1个,第二个箱子至少3个,第三个箱子可以空着,问方案数。
解析
第二个箱子中先给它放2个。第三个箱子中额外准备1个球。所以总共还有9个球,问题等价于
Base(9,3)
,所以方案数为(C_8^2=28)种。
总结:
根据每个容器的约束条件(可为空,至少放几个)来对元素个数进行调整,再转化成上面最基础的问题求解。
一般情况下可以做出如下转化:有(k)个箱子不能为空->多准备(k)个球总球数增加(k)个,某个箱子至少得放(k)个->先给他放(k-1)个,从总球数中减去(k-1)个。
3.变式-添插板法
问题:
仍然是原来的问题,我们换一种方式去分析。
例1:将7个相同小球放入4个不同箱子,可以有箱子为空,问方案数?
解析
我们试试看能不能直接通过加插板的方式来解决问题。
[]O[]O[]O[]O[]O[]O[]O[]
,这样子构造就有7个球,8个板子。我们在这之中选择两个板子,可以表示出箱子1,箱子4的分划情况,但对于箱子2,箱子3我们无法表示它们为空的状态(不然就有两个板子重在一起了),所以在所有板子后面在多加两个板子,占了第一个板子表示箱子2为空,占了第二个板子表示箱子3为空。像这样子
[]O[]O[]O[]O[]O[]O[]O[][add1][add2]
。这样我们只用在总共10个板子中选择3个板子。所以答案为(C_{10}^3=120)。比如当分类情况为{(2,3,1,1)}时状态为
[]O[]O[✔]O[]O[]O[✔]O[✔]O[][][]
;当分类情况为{(0,3,0,4)}时状态为
[✔]O[]O[]O[✔]O[]O[]O[]O[][][✔]
;当分类情况为{(1,0,6,0)}时状态为
[]O[✔]O[]O[]O[]O[]O[]O[✔][✔][]。
4.应用
很多分组计数问题都可以通过转化成隔板模型去简化理解,不一定会出现上面提到的容器之类的,但同样可以建立隔板模型。具体问题具体分析,根据意义来走就好了。
例1:一共10颗糖,每天至少吃1粒,吃完为止,问方案数?
解析
建立隔板模型
O_O_O_O_O_O_O_O_O_O
,由于没有限定天数,所以也就没有所谓的容器了,一共9个板子,都可以选择,所以方案数为(2^9=512)。
例2:一共15块糖,每天至少吃3块,吃完为止,问方案数?
解析
好像不能简单的按上面思路去分析了,因为它一天至少要吃3块。联想到之前分析过得“凑元素法”,但“凑元素法”需要容器个数,而这里没有天数——也就是容器。
那我们就枚举天数呗,然后根据加法原理将所有情况相加即可。根据题意可知天数(t∈[1,5])。
当t=1或5时,(ways=1+1=2);
当t=2时,每天都预先吃2块,还剩11块,所以(ways=Base(11,2)=C_{10}^1=10);
当t=3时,每天都预先吃2块,还剩9块,所以(ways=Base(9,3)=C_{8}^2=28);
当t=4时,每天都预先吃2块,还剩7块,所以(ways=Base(7,4)=C_{6}^3=20);相加得(1+1+10+28+20=60)种。
例3:一列队伍原有6个人,现在有三个人A,B,C来插队,问最后形成队伍的方案数?
多次插板。
一开始的队伍情况可以这样表示
_O_O_O_O_O_O_
,一共6个球,7个板,任选一个板子往上面放A,方案数为(C_7^1)。放上一个人之后增加一个球,一个板,变成7个球,8个版,所以B的插队方式数(C_8^1)。类似的C的插队方式数位(C_9^1)。根据乘法原理答案为(C_7^1*C_8^1*C_9^1=504)种。