排列组合

1.

错排

void init()  
{  
    D[0]=1;D[1]=0;  
    for(int i=1;i<maxn;i++)//错排  
        D[i]=((i-1)*(D[i-1]+D[i-2])+mod)%mod;  
    int i;  
    for (p[0]=i=1;i<=200000;i++) p[i]=1ll*p[i-1]*i%mod;  
    for (int i = 0; i < maxn; i++)//排列组合  
    {  
        for (int j = 0; j <= min(105, i); j++)  
        {  
            if (j == 0) C[i][j] = 1;  
            else  
                C[i][j] = (C[i-1][j] + C[i-1][j-1]) % mod;  
        }  
    }  
}  


2.

 m个人传球,甲第一次传,传了n次,球又回到甲手中,有几种方式? 


x+(m-1)(x+1)=(m-1)^n               n为奇数   x为初始人,x+1为非初始人
x+(m-1)(x-1)=(m-1)^n               n为偶数   x为初始人,x-1为非初始人


3.

插板法就是在n个元素间的(n-1)个空中插入 若干个(b)个板,可以把n个元素分成(b+1)组的方法。 
应用插板法必须满足三个条件: 
(1) 这n个元素必须互不相异 
(2) 所分成的每一组至少分得一个元素 
  (3)    分成的组别彼此相异 
举个很普通的例子来说明 
把10个相同的小球放入3个不同的箱子,每个箱子至少一个,问有几种情况? 
问题的题干满足 条件(1)(2),适用插板法,c9 2=36 
下面通过几道题目介绍下插板法的应用 
=================================================== 
a  凑元素插板法 (有些题目满足条件(1),不满足条件(2),此时可适用此方法) 
  例1 :把10个相同的小球放入3个不同的箱子,问有几种情况? 
3个箱子都可能取到空球,条件(2)不满足,此时如果在3个箱子种各预先放入 
1个小球,则问题就等价于把13个相同小球放入3个不同箱子,每个箱子至少一个,有几种情况? 
显然就是 c12 2=66 
------------------------------------------------- 
  例2: 把10个相同小球放入3个不同箱子,第一个箱子至少1个,第二个箱子至少3个,第三个箱子可以放空球,有几种情况? 
我们可以在第二个箱子先放入10个小球中的2个,小球剩8个放3个箱子,然后在第三个箱子放入8个小球之外的1个小球,则问题转化为 把9个相同小球放3不同箱子,每箱至少1个,几种方法? c8 2=28 
================================================== 
b 添板插板法 
例3:把10个相同小球放入3个不同的箱子,问有几种情况? 
-o - o - o - o - o - o - o - o - o - o -           o表示10个小球,-表示空位 
11个空位中取2个加入2块板,第一组和第三组可以取到空的情况,第2组始终不能取空 
此时 若在 第11个空位后加入第12块板,设取到该板时,第二组取球为空 
则每一组都可能取球为空   c12 2=66 
-------------------------------------------------------- 
例4:有一类自然数,从第三个数字开始,每个数字都恰好是它前面两个数字之和,直至不能再写为止,如257,1459等等,这类数共有几个? 
因为前2位数字唯一对应了符合要求的一个数,只要求出前2位有几种情况即可,设前两位为ab 
显然a+b<=9 ,且a不为0 
1 -1- 1 -1 -1 -1 -1 -1 -1 -   -           1代表9个1,-代表10个空位 
我们可以在这9个空位中插入2个板,分成3组,第一组取到a个1,第二组取到b个1,但此时第二组始终不能取空,若多添加第10个空时,设取到该板时第二组取空,即b=0,所以一共有 c10 2=45 
----------------------------------------------------------- 
例5:有一类自然数,从第四个数字开始,每个数字都恰好是它前面三个数字之和,直至不能再写为止,如2349,1427等等,这类数共有几个? 
类似的,某数的前三位为abc,a+b+c<=9,a不为0 
1 -1- 1 -1 -1 -1 -1 -1 -1 -   -  - 
在9个空位种插如3板,分成4组,第一组取a个1,第二组取b个1,第三组取c个1,由于第二,第三组都不能取到空,所以添加2块板 
设取到第10个板时,第二组取空,即b=0;取到第11个板时,第三组取空,即c=0。所以一共有c11 3=165 
============================================ 
c 选板法 
例6: 有10粒糖,如果每天至少吃一粒(多不限),吃完为止,求有多少种不同吃法? 
o - o - o - o - o - o - o - o - o - o     o代表10个糖,-代表9块板 
10块糖,9个空,插入9块板,每个板都可以选择放或是不放,相邻两个板间的糖一天吃掉 
这样一共就是 2^9= 512啦 
============================================= 
d 分类插板 
例7: 小梅有15块糖,如果每天至少吃3块,吃完为止,那么共有多少种不同的吃法? 
此问题不能用插板法的原因在于没有规定一定要吃几天,因此我们需要对吃的天数进行分类讨论 
最多吃5天,最少吃1天 
1: 吃1天或是5天,各一种吃法  一共2种情况 
2:吃2天,每天预先吃2块,即问11块糖,每天至少吃1块,吃2天,几种情况? c10 1=10 
3:吃3天,每天预先吃2块,即问9块糖,每天至少1块,吃3天? c8 2=28 
4:吃4天,每天预先吃2块,即问7块糖,每天至少1块,吃4天?c6 3=20 
所以一共是 2+10+28+20=60 种 
================================= 
e 二次插板法 
例8 :在一张节目单中原有6个节目,若保持这些节目相对次序不变,再添加3个节目,共有几种情况? 
-o - o - o - o - o - o -          三个节目abc 
可以用一个节目去插7个空位,再用第二个节目去插8个空位,用最后个节目去插9个空位 
所以一共是 c7 1×c8 1×c9 1=504种 



4.

a+b+c+..<=n

a+b+c<=10

x=a+1,y=b+1,z=c+1,则 x,y,z为正整数 x+y+z<=13 
0- 0- 0- 0- 0 -0 -0 -0 -0 -0- 0- 0 -0-       0代表13个1,-代表空位 
13个空 选3个插入3板,13个1被分成4部分,前3部分分别对应x,y,z 
满足x,y,z>=1,且x+y+z<=13, 共有 c13 3=286种 
一个xyz与一个abc唯一对应,所以共有286个abc 

a+b+c+d<=10 
x=a+1,y=b+1,z=c+1,t=d+1,x,y,z,t为正整数,x+y+z+t<=14 
分析方法同上,需要从14个空选4个 
c14 4=1001 



5.

n种元素 (每种元素足够多) 选m个的公式: 
c(n+m-1,m)


幼儿园买来9种不同的书籍,每个小朋友领3本,问至少几个小朋友领过后,一定会出现两个小朋友领的书是相同的? 


C11 3 +1=166 



6.(不)相同球放(不)相同盒


1:8个相同的球放进3个相同的盒子里,每盒至少一个,有几种方法 
取球最少的盒子取1,取球第二少的盒子可以取[1,3]   3种 
取球最少的盒子取2,取球第二少的盒子可以取[2,3]   2种 
取球最少的盒子取3,此情况不存在,一共5种 
按取球多寡来分类讨论可以做到不遗漏,不重复 
------------------------------------------------------------------------- 
2:8个相同的球放进3个不同的盒子里,每盒至少一个,有几种方法 
插板法,c7 2=21 
-------------------------------------------------------------------------- 
4:8个不同的球放进3个相同的盒子里,每盒至少一个,有几种方法 
取球最少盒子取1时,有116,125,134三种情况,分别有c8 6=28, c8 1*c7 2=168, c8 1*c73=280 
取球最少盒子取2时,有224,233二种情况,分别有c82*c62/2=210,c83×c53/2=280 
一共28+168+280+210+280=966 
------------------------------------------------------------------------------- 
3:8个不同的球放进3个不同的盒子里,每盒至少一个,有几种方法 
4问中的966种情况,每种情况的三个元素都是互异的,比如 116(因为球是不同的),这三个元素进行全排列p33=6,乘以966=5796即为所求 
------------------------------------------------------------------------------------ 
5:8个相同的球放进3个相同的盒子里,有几种方法 
最少盒子取0,次盒子取[0,4] 
最少盒子取1,次盒子取[1,3] 
最少盒子取2,次盒子取[2,3] 
一共5+3+2=10种 
------------------------------------------------------------------------------  
6:8个相同的球放进3个不同的盒子里,有几种方法  
预先在三个盒子种各放入一小球,则问题转化为11同球放3不同盒子,每盒至少1个,几种方法? 用插板法,c10 2=45 
---------------------------------------------------------------------------- 
7:8个不同的球放进3个不同的盒子里,有几种方法 
每个球都有3种选择,8个球就有3^8=6561 
-----------------------------------------------------------------------------  
8:8个不同的球放进3个相同的盒子里,有几种方法 
7问中的一般情况(3个元素都相异),比如116,一共有6种排列(球是不同的),此问中,盒子是相同的,因此这6种排列都只算一种情况。 
但如果2个元素相同的时候,有且只有 008,只有3种排列,我们多添加3种进去,令其也重复6次,则(6561+3)就是 所有的情况都重复了6次,(6561+3)/6=1094即为所求。


7.

容斥原理

五个人排成一排,甲不在排头,乙不在正中间,丙不在排尾的,问共有几种排法?

甲不在排头,乙不在正中间,丙不在排尾的情况有x种 
题干的否命题是甲在排头(a)或 乙在中间(b)或丙在排尾(c),对应情况为y 
x+y=A55 (所有的情况) 
y=a并b并c 
a并b并c=a+b+c-a交b-a交c-b交c+a交b交c (三集合容斥原理) 
             =3A44-3A33+A22=56 
x=A55-y=120-56=64



8.

奇数位和-偶数位和=11x

任写一个六位数,把它的个位数字拿到这个数的最左边得到一个新的六位数(0除外),再与原数相加,下面四个数可能正确的是()? 
a,172536 b,568741 c,620708 d,845267 
奇数位和-偶数位和=11x (可被11整除) 
任写一个七位数,把它的个位数字拿到这个数的最左边得到一个新的七位数(0除外),再与原数相加,下面四个数可能正确的是()? 
a,1725361  b,5687418   c,9420708    d,9097035 
--------------- 
设此七位数 n=abcdefx,abcdefx+xabcdef= t,t的最高位减x,最低位减x 
  abcdefx------------abcdef            
  xabcdef----------+   abcdef  得到的数被11整除 
七位数最高最低位都是奇数,奇数位和-偶数位和-2x=11y 
-------------- 
d    9+9+0+5-(0+7+3)=13,13-2*1=11 
x=1,abcdef=8097034/11=736094 
n=7360941


9.

特殊的余数问题还有个小口诀 
1:和同加和 
2:余同加余 
3:差同减差     (公倍数作周期) 
例2:一个数除以5余2除以4余3,除以9余7,满足条件的三位数有几个? 
5+2=4+3              此为和同,因此 x=20a+7 (20为公倍数,+7为加和) 
x=20a+7=9b+7,此为余同,因此x=180n+7  (180为公倍数,+7为加余) 
n 取 [1,5] 共5个 
----------------------------------------- 
例3:一个数除以5余1,除以6余2,满足条件的三位数有几个? 
x=5a+1=6b+2 
5-1=6-2=4,        此为差同,因此x=30n-4 
n取 [4,33]  共30个 



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值