zoukankan      html  css  js  c++  java
  • 挡板法

    先贴上参考博客(1)(2)(3)   //要有素质

    挡板法即在n个元素(n-1个空)中插入k-1个板子,把这n个元素分成k组,方案数为$C_{n-1}^{k-1}$(每组至少一个元素)

    例1:

    10个相同的小球放入3个箱子,每个箱子至少一个,问有几种情况? 

    求方程 x+y+z=10的正整数解的个数

    答案:$C_{10-1}^{3-1}$=$C_{9}^{2}$

     

    例2:

    10个相同的小球放入3个箱子,每个箱子可以不放,问有几种情况? 

    求方程 x+y+z=10的非负整数解的个数

    我们假设给每个箱子各添一个球,问题就转化为与例1相同的问题:

    把13个相同小球放入3个不同箱子,每个箱子至少一个,有几种情况?

    答案:$C_{12}^{2}$

     

    好了,进入正题:(体会思想)

    添元素挡板法

    例3:

     10个相同小球放入3个不同箱子,第一个箱子至少1,第二个箱子至少3,第三个箱子可以不放球,有几种情况?

    先给第3个箱子添一个球,再从10个球中拿出2个放入第1个箱子,则问题又转化为例1:

    把9个(10+1-2)相同小球放入3个不同箱子,每个箱子至少一个,有几种情况?

    答案:$C_{8}^{2}$

    例4:

    20个相同的小球放入编号分别为1,2,3,4的四个盒子中,要求每个盒子中的球数不少于它的编号数,求放法总数。(减少球数用隔板法)

    从20个球中拿出6个分为1,2,3个分别放在2,3,4四个盒子内,则问题变为(又是例1):

    把14个相同小球放入4个不同箱子,每个箱子至少一个,有几种情况?

    答案:$C_{13}^{3}$

    例5:

    有一类自然数,从第三个数字开始,每个数字都恰好是它前面两个数字之和,直至不能再写为止,如257,1459等等,这类数共有几个?

    性质:(1)前两位确定一个数   (2)设前两位为a,b,则a+b<=9,且a不为0

        所以只需要找前两位满足(2)的有几种情况

    然后我就错误的把问题转化为:把9个1分成两部分,前一部分>=1,后一部分可为0 ==> 把9个小球放入两个箱子,第一个至少一个,第二个可以不放 ==> 变为例3,答案$C_{9}^{1}$    想想这题和例3有什么区别?  嗯,例3必须把10个小球全部放入,而本题是<=9

    所以  怎么做?

    想法1:我们添一个箱子c,则问题转化为:把9个小球放入3个箱子,第一个箱子a至少1个,第二第三个箱子b,c可以不放

    这样就同例3了,给第2,3个箱子每个先添1个球,问题变为:把11个小球放入3个箱子,每个箱子至少一个

    想法2:我们假设在9个1中插入两个板子,分成3组,第一组为a,第二组为b,但此时b一定>=1,且a+b<=8,

         所以我们把9扩大到10,则a+b<=9成立,但此时b一定>=1,

            那我们就再扩大,把10变成11,当第1个板子插在9和10中间时,a=9,b本应为1,但你只选取前9位的答案,所以把b看作0

         (即下面的添板挡板法)

    答案:$C_{10}^{2}$

    添板挡板法

    附上dalao的上一题添板挡板法的解释:

    显然a+b<=9 ,且a不为0   1 -1- 1 -1 -1 -1 -1 -1 -1 - -    1代表9个1,-代表10个空位 (第一个没有因为a不能为0),

    我们可以在这9个空位中插入2个板,分成3组,第一组取到a个1,第二组取到b个1,但此时第二组始终不能取空,

    若多添加第10个空时,设取到该板时第二组取空,即b=0,所以一共有 c(10,2)=45  

    懂了?

    选板法

    例6:

    10粒糖,如果每天至少吃一粒(多不限),吃完为止,求有多少种不同吃法?

    10粒糖,9个空,插9个板,每个板选择放或不放

    答案:$2^9$

    分类插板法

    例7:

    小梅有15块糖,如果每天至少吃3块,吃完为止,那么共有多少种不同的吃法?

    这道题和前面的题都不一样,他没有规定一定要吃几天,所以我们要对吃的天数分类讨论

    最多吃5天,最少吃1天

    (1)吃1天或吃5天,各一种情况 ans+=2;

    (2)吃2,3,4天均同例3例4,每天预先吃2块(从15块中刨出来)ans+=$C_{10}^{1}$+$C_{8}^{2}$+$C_{6}^{3}$;

    逐步插板法

    例8:

    在一张节目单中原有6个节目,若保持这些节目相对次序不变,再添加3个节目,共有几种情况?

    3个节目可以挨着,不能一块插,所以我们考虑一步一步插:

    用第一个节目去插7个空位,第二个插8个空位,第三个插9个空位

    答案:$C_{7}^{1}$+$C_{8}^{1}$+$C_{9}^{1}$

    有最大限制的插板法(容斥原理正在靠近ing)

    把m个完全相同的球放入n个完全相同的箱子,每个箱子至少1个球,至多3个球 的方案数。

    求n个正整数之和为m,每个数都<=k,的方案数

    我们先了解一下容斥原理:先把无限制的情况选出来 - 不符合条件的情况

    $C_{m-1}^{n-1}$算出无限制的情况后,要计算不符合条件的情况

  • 相关阅读:
    array_map()与array_shift()搭配使用 PK array_column()函数
    Educational Codeforces Round 8 D. Magic Numbers
    hdu 1171 Big Event in HDU
    hdu 2844 poj 1742 Coins
    hdu 3591 The trouble of Xiaoqian
    hdu 2079 选课时间
    hdu 2191 珍惜现在,感恩生活 多重背包入门题
    hdu 5429 Geometric Progression 高精度浮点数(java版本)
    【BZOJ】1002: [FJOI2007]轮状病毒 递推+高精度
    hdu::1002 A + B Problem II
  • 原文地址:https://www.cnblogs.com/qwertyuiopasdfghjklzxcvbnm/p/11329136.html
Copyright © 2011-2022 走看看