排列组合

排列组合
求组合数
#1
#2
多重组合数
有l个物品,给每个人分配c_i个,求有多少种方案:
(lc1c2…ck)
排列组合实际问题总结
不定方程的解
求不定方程x1+x2+…+xk=n的解的数量,其中xi为整数,且xi≥1,(1≤i≤k)
隔板法:(k-1)块板把n个小球分成n份
若xi≥ai,x1+x2+…+xk≤n
换元:y1=x1−(a1−1)≥1,y2=x2−(a2−1)≥1,…,yk=xk−(ak−1)≥1
y1+y2+…+yk=n−∑i=1kai+k
此时答案为(n−∑i=1kai+kk−1)
网络路径计数
在n*m的网格图上,从(0,0)走到(n,m),每次只能向右或者向上走,求方案数。
共走n+m步,有m步向上
(n+mm)
容斥
容斥 ∣⋃i=1nSi∣=∑m=1n(−1)m−1∑ai<ai+1∣⋂i=1mSai∣
求正整数1-n中,既不是2的倍数也不是3的倍数的数的数量
求n个元素1-n组成的全排列,满足1与2不相邻,3与4也不相邻的方案数
把n件不一样的物品放到三个不同盒子里,满足每个盒子至少要有一个物品的方案数。
有
2n个元素,a1,a2,…,an和b1,b2,…,bn,求有多少个它们的全排列,满足任意的1≤i≤n,ai和bi都不相邻。
S={全排列},Ai=ai和bi相邻,有∑i=0n(−1)i(ni)2i(2n−i)!种
求不定方程x1+x2+…+xk=n的解的数量,其中xi为整数,且li≤xi≤ri,(1≤i≤k)
S=x1+x2+…+xk=n的所有满足xi≥li的解
Ai={xi≥ri+1}
那么就转化成了之前在排列组合中提到的问题
错排问题
p是1,2,…,n的一个排列,满足∀1≤i≤n,pi=i,给定n,求满足要求的排列有多少个。
S=1,2,…,n的全排列
Ai={pi=i}
有∣S−⋃i=1nAi∣=∑i=0n(−1)i(ni)(n−i)!种
容斥原理的符号形式

这样就可以用N(a1…ax(1−ax+1)…(1−ax+n))求出有些性质有,有些性质没有的方案数
例:求正整数1-n中,既不是2的倍数也不是3的倍数,但是是5的倍数的数的数量。
a1:是2的倍数,a2:是3的倍数,a3:是5的倍数
N((1−a1)(1−a2)a3)=N(a3−a1a3−a2a3+a1a2a3)=⌊5n⌋−⌊10n⌋−⌊15n⌋+⌊30n⌋
p是1,2,…,n的一个排列,满足刚好存在k个1≤i≤n满足pi=i,给定n,k,求满足要求的排列有多少个。
Ai={pi=i}
N(a1a2…ak(1−ak+1)…(1−an))=(nk)∑i=0n−k(−1)i(n−ki)(n−(k+i))!
第二类斯特林数
有n个互不相同的球,放到k个互不区分的盒子里,每个盒子里至少要有一个球,求方案数。
#1:dp,f[n][k]表示前n个球放k个盒子,k*f[n-1][k]+f[n-1][k-1]
#2:将盒子从1到k编号,a_i表示第i个盒子没有球。
N((1−ai)…(1−ak))=∑i=0k(−1)i(ki)(k−i)n=s2(n,k)∗k!
故s2(n,k)=k!1∑i=0k(−1)i(ki)(k−i)n
第二类斯特林数的一些公式

对于图中最后一个公式,可以看成是n个不同的盒子中放m个球,即为n^m,也可以看成每次从n个盒子中取k个盒子,即为
完全错排

Last updated