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

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

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

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

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

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

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

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

此文章持续更新

组合论的一些实战应用

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

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

考虑最大值为 x 的概率

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

答案为

[Ans = sum_{x=1}^n p(x)*x\=frac {1}{n choose k}sum_{x=1}^n {x-1choose k-1} cdot x\=frac {k}{n choose k}sum_{x=1}^n {xchoose k}\=frac {k}{n choose k}{n+1choose 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}{nchoose i}i!\=sum_{i=0}^n (-1)^{n-i}frac{n!}{(n-i)!}\= n!sum_{i=0}^nfrac{(-1)^i}{i!} ]

容斥

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

也可得到上方式子

多项式处理字符串问题

我的另一篇文章

原文地址:https://www.cnblogs.com/Hs-black/p/12882031.html