隔板法入门
基础内容(装球问题)
问题一:将 \(n\) 个相同的球装入 \(m\) 个相同的盒子里,盒子不能为空,求方案数。
相当于在 \(n-1\) 个空隙中,插入 \(m-1\) 块板子。这样相邻两个板子以及边界就代表盒子。
因此方案数为 \(\binom{n-1}{m-1}\)
问题二:将 \(n\) 个相同的球装入 \(m\) 个相同的盒子里,盒子可以为空,求方案数。
先将 \(n+m\) 个球放入 \(m\) 个盒子中,不允许为空。然后在每个盒子中取出一个球,就得到了 \(n\) 个球放入 \(m\) 个盒子中,允许为空的方案数。
因此方案数为 \(\binom{n+m-1}{m-1}\)。
应用
参考博客:https://blog.csdn.net/sdz20172133/article/details/81431066
问题一:求方程 \(x+y+z=n\) 的正整数解个数。
将 \(n\) 个球排成一排,球与球之间形成 \(n-1\) 个空隙,将两个隔板插入这些空隙中(每空至多插一块隔板),规定由隔板分成的左、中、右三部分的球数分别为 \(x、y、z\) 之值。
因此解的个数为 \(\binom{n-1}{3-1}\)。
问题二:求方程 \(x+y+z=n\) 的非负整数解个数。
与问题一的区别在于 \(x,y,z\) 可以 \(=0\),相当于装球问题中盒子可以为空的情况。
因此解的个数为 \(\binom{n+3-1}{3-1}\)。
问题三:把 \(10\) 个相同小球放入 \(3\) 个不同箱子,第一个箱子至少 \(1\) 个,第二个箱子至少 \(3\) 个,第三个箱子可以放空球,有几种情况?
先分别在第 \(1,2\) 个盒子中装 \(3,1\) 个球,问题转化为将剩下的 \(6\) 个球装入 \(3\) 个盒子中,允许为空。情况数为 \(\binom{6+3-1}{3-1}=28\)。
问题四:将 \(20\) 个相同的小球放入编号分别为 \(1,2,3,4\) 的四个盒子中,要求每个盒子中的球数不少于它的编号数,求放法总数。
与问题三类似,答案是 \(\binom{10+4-1}{4-1}\)。
问题五:有一类自然数,从第三个数字开始,每个数字都恰好是它前面两个数字之和,直至不能再写为止,如 \(257,1459\) 等等,这类数共有几个?
因为前两位可以唯一确定这个数,因此只需要数出前两位的数量。
设这两位是 \(a,b\),则需要满足 \(a+b\le 9\) 且 \(a\not=0\)。
还是考虑装球问题,相当于将 \(9\) 个球放入 \(3\) 个箱子中,且第一个箱子的球的数量 \(\ge 1\)。则第 \(1,2\) 个箱子中球的数量就分别代表 \(a,b\)。
类似问题三,方案数为 \(\binom{8+3-1}{3-1}=45\)。
问题六(选板法):有 \(10\) 粒糖,如果每天至少吃一粒,吃完为止,求有多少种不同吃法?
\(10\) 颗糖对应 \(9\) 个空隙,先在 \(9\) 个空隙中放置 \(9\) 块板子。现在选择一些板子撤走,然后相邻两个板子之间的糖在同一天吃完。
方案数为 \(2^9=512\)。
问题七(讨论插板):\(15\) 块糖,如果每天至少吃 \(3\) 块,吃完为止,那么共有多少种不同的吃法?
由于每天至少吃 \(3\) 块,因此没办法像问题六一样选板。
不妨枚举吃糖的天数,例如吃 \(3\) 天,则预先给每一天分配 \(3\) 块,然后将剩下的 \(12\) 块分给三天,可以为空,方案数为 \(\binom{12+3-1}{3-1}=28\) 种。
最终的答案为 \(2+10+28+20=60\) 种。
问题八(逐步插板法):在一张节目单中原有 \(6\) 个节目,若保持这些节目相对次序不变,再添加 \(3\) 个节目,共有几种情况?
添加一个节目显然很简单,就是 \(7\) 个空位选 \(1\) 个插入,共有 \(\binom{7}{1}\) 种方法。
于是考虑依次添加 \(3\) 个节目,总方案数为 \(\binom{7}{1}\binom{8}{1}\binom{9}{1}\)。
一些 OI 问题
问题九([ZOJ3557] How Many Sets II):\(n\) 个小球排成一排,选择 \(m\) 个使得没有选择相邻的两个球,求方案数。
先取出 \(m\) 个球,然后让剩下的 \(n-m\) 个球排成一排。
接下来将这 \(m\) 个球插入剩下球的 \(n-m+1\) 个空隙(包含两端)中
问题十([HDU3037] Saving Beans):有 \(n\) 个不同的盒子,在每个盒子中放一些球(可以不放),使得总球数 \(\le m\),求方案数。
限制条件是总球数 \(\le m\),而我们希望是 \(=m\)。
因此增加一个盒子,将 \(m\) 个球放入 \(n+1\) 个盒子中,允许为空。这样第 \(1\sim n\) 个盒子对应放球方案。
则方案数为 \(\binom{m+(n+1)-1}{(n+1)-1}=\binom{n+m}{n}\)。