排列组合初步

版权声明:原创文章,转载要注明作者哦 https://blog.csdn.net/DYT_B/article/details/81217070

数学基础:公式大全:

m C n m = n C n 1 m 1 m*C_{n}^{m}=n*C_{n-1}^{m-1}
拆开来看一看啊
C n 0 + C n 1 + C n 2 . . . + C n n = 2 n C_{n}^{0}+C_{n}^{1}+C_{n}^{2}...+C_{n}^{n}=2^{n}
这个应该比较显然,对于每一个数,选或者不选。
1 C n 1 + 2 C n 2 + 3 C n 3 . . . + n C n n = n 2 n 1 1C_{n}^{1}+2C_{n}^{2}+3C_{n}^{3}...+nC_{n}^{n}=n2^{n-1}
结合第一个式子,把每一项的系数变成n,然后提出来,用第二个式子即可
1 2 C n 1 + 2 2 C n 2 + 3 2 C n 3 . . . + n 2 C n n = n ( n + 1 ) 2 n 2 1^{2}C_{n}^{1}+2^{2}C_{n}^{2}+3^{2}C_{n}^{3}...+n^{2}C_{n}^{n}=n(n+1)2^{n-2}
把前面几个式子合并变形一下就好了。
C n 1 1 C n 2 2 + C n 3 3 . . . + ( 1 ) n 1 C n n n = 1 + 1 2 + 1 3 + . . . + 1 n \frac{C_{n}^{1}}{1}-\frac{C_{n}^{2}}{2}+\frac{C_{n}^{3}}{3}...+(-1)^{n-1}\frac{C_{n}^{n}}{n}=1+\frac{1}{2}+\frac{1}{3}+...+\frac{1}{n}
23333

建模:小球和盒子

我们知道排列组合的经典模型就是小球和盒子的问题,
那么我们就可以罗列一下:
假设:N个球,M个盒子

球相同,盒相同,可以为空:
好像只能递推: f [ i ] [ j ] = f [ i 1 ] [ j 1 ] + f [ i j ] [ j ] f[i][j]=f[i-1][j-1]+f[i-j][j]

球相同,盒相同,不能为空:
可以利用一下上一种情况的结果: f [ i ] [ j ] f [ i ] [ j 1 ] f[i][j]-f[i][j-1] 就可以了

球不同,盒不同,可以为空:
直接: n m n^m

球不同,盒相同,不能为空:
相当于第二类斯特林数,DP解决: f [ i ] [ j ] = j f [ i 1 ] [ j ] + f [ i 1 ] [ j 1 ] f[i][j]=j*f[i-1][j]+f[i-1][j-1]

球不同,盒不同,不能为空:
比上一种情况多了一个盒不同的条件,我们先假装盒相同,然后再把上一种的答案 m *m! 就好了。

球不同,盒相同,可以为空:
暴力枚举有几个盒子有球,直接DP解决。

球相同,盒不同,不能为空:
隔板法解决: C n 1 m 1 C_{n-1}^{m-1}

球相同,盒不同,可以为空:
C n + m 1 n 1 C_{n+m-1}^{n-1}

一些其他的姿势:

错位排列 f [ n ] = ( i 1 ) ( f [ n 1 ] + f [ n 2 ] ) f[n]=(i-1)*(f[n-1]+f[n-2])

圆排列:固定一个点先,其他的点随便排,方案就是: ( n 1 ) ! (n-1)!

重复排列(每个点出现ai次) n ! a 1 ! + a 2 ! + . . . + a n ! \frac{n!}{a1!+a2!+...+an!}

斯特林数戳这里

卡特兰数
C a t n = C 2 n n n + 1 = C 2 n n C 2 n n + 1 Cat_n=\frac{C_{2n}^{n}}{n+1}=C_{2n}^{n}-C_{2n}^{n+1}

猜你喜欢

转载自blog.csdn.net/DYT_B/article/details/81217070