常用计数技巧和方法(应用篇)

常用计数技巧和方法(应用篇)

文章较长且大量使用 \(\LaTeX\) 导致渲染较慢,因此分为两个部分

由于计数方面的知识非常的繁细,容易忘记,使用时不够熟练,这里总结一下

以下内容有所借鉴百度百科和大佬的 blog %%%

【瞎总结】组合模型及其组合意义的阐释

范德蒙德卷积以及一些二项式系数的推导

基础知识请去这里 常用计数技巧和方法(理论篇)

此文章持续更新

组合论的一些实战应用

均匀分布最大次序统计量的期望为 \(\frac {k}{k+1}(n+1)\)

即从 \(1\to n\) 随机选出 k 个数最大值的期望

考虑最大值为 x 的概率

\[p(x) = \frac {x-1\choose k-1}{n \choose k} \\ \]

答案为

\[Ans = \sum_{x=1}^n p(x)*x\\=\frac {1}{n \choose k}\sum_{x=1}^n {x-1\choose k-1} \cdot x\\=\frac {k}{n \choose k}\sum_{x=1}^n {x\choose k}\\=\frac {k}{n \choose k}{n+1\choose k+1}\\=\frac {k}{k+1}(n+1)\\ \]

同理可证最小值期望为 \(\frac {n+1}{k+1}\)

洛谷P5824 十二重计数法

n 球, m 盒,球放到盒子里的方案数

球不同,盒子不同: \(m^n\)

球不同,盒子不同,每个盒子最多装一个:\(A_{m}^n\)

球不同,盒子不同,每个盒子最少装一个:容斥转化为第一问题

球不同,盒子相同:第二类斯特林数

球相同,盒子不同:隔板法

球相同,盒子相同:拆分数

拆分数多项式解法:

\(f[n][k] : n 拆分成k份方案数\)

\[f[n][k] = f[n-k][k] + f[n-1][k-1]\\S_k = S_{k-1}*x + S_k*x^k\\S_k = \frac {S_{k-1}}{1-x^k} = \prod_{j = 1}^k \frac 1{1-x^j}\\ \]

对 S 取 ln 再 exp 回去

\[G = ln(1 - x^n)\\G' = \frac{-nx^{n-1}}{1-x^n}\\= -nx^{n-1}*(1+x^n+x^{2n}+x^{3n}+\cdots)\\G = -\sum_{j=1}^{\infty}\frac{x^{nj}}{j}\\S_k = exp(\sum_{j=1}^k -G_j) \]

错排问题的多种解法

动态规划 \(\Theta(n)\)

\(dp[x] = (x-1)(dp[x-1]+dp[x-2])\)

考虑 x 会放到哪,首先可以随便放到前 (x-1) 的位置上,就会有一个数 y 被顶出来,如果 y 放到了 x 的位置上,方案数为 \(dp[x-2]\),如果 y 不可放到 x 的位置上,将是 x - 1 大小的错排

二项式反演

一个排列的全排列可以通过枚举有几个数错位表示

\[n! = \sum_{i=0}^n{n \choose i}f(i)\\f(n) = \sum_{i=0}^n (-1)^{n-i}{n\choose i}i!\\=\sum_{i=0}^n (-1)^{n-i}\frac{n!}{(n-i)!}\\= n!\sum_{i=0}^n\frac{(-1)^i}{i!} \]

容斥

\[f(n) = \sum_{i=0}^n(-1)^i{n\choose i}(n-i)! \]

也可得到上方式子

多项式处理字符串问题

我的另一篇文章

posted @ 2020-05-13 14:06  Hs-black  阅读(1076)  评论(0编辑  收藏  举报