zoukankan      html  css  js  c++  java
  • 组合数学知识要点

    导数与积分

    %%YCB%%

    排列与组合

    加法法则与乘法法则

    基础思想:分类计数使用加法,分步计数使用乘法

    Cayley定理

    (n)个有标号顶点的树的个数为(n^{n-2})

    证明:定义一个消去序列,序列与树一一对应(略)。

    排列与组合

    (n)(r)排列:(frac{n!}{(n-r)!})

    (n)(r)组合:组合数(naive)

    (n)(r)可重排列:(n^r)(naive)

    (n)(r)可重组合:(inom{n+r-1}{r})

    多重集(S={(a_1,k_1),(a_2,k_2),...,(a_n,k_n)})

    多重集的全排列:(frac{n!}{k_1!k_2!...k_n!})

    多重集的(r)组合:(inom{n+r-1}{r}(forall kge r))

    隔板法、放缩法是解释组合意义的利器

    组合问题与二项式系数、格路问题的联系

    不经过对角线的格路问题方案数求解

    Wallis公式与Stirling公式

    Stirling公式:(n!acksim sqrt{2npi}(frac n e)^n)

    貌似OI不怎么用得上?

    递推关系与母函数

    母函数

    对一个数列(a_0,a_1,a_2...)构造函数

    [G(x)=a_0+a_1x+a_2x^2+... ]

    称为母函数,其长度可以是无穷大。

    母函数的表示及求解

    大部分无穷大的母函数可以写成若干个无穷等比数列的和

    无穷等比数列求和公式:(S=frac{a_1}{1-q})(不失一般性地设(0<q<1),由有穷等比数列求和(S_n=frac{a_1(1-q^n)}{1-q})(q^n)看作无穷小可以推导出)

    求解的一般步骤

    一、写出递推式(形如(a_i=f(a_{i-1})),记为递推式的第(i)项)

    二、递推式的第(i)项两边乘上(x^i),最后所有等式左右两边分别求和,形如

    [a_1x+a_2x^2+a_3x^3+...=f(a_0)x+f(a_1)x^2+f(a_2)x^3+... ]

    三、通过移项、无穷等比数列求和、因式分解等变换,把上面的大等式大概写成这样(分子是任意一个多项式(P(x)),不用在意)

    [G(x)=frac{P(x)}{(1-q_1x)(1-q_2x)...} ]

    四、上式可以裂项成若干等比数列的和

    [G(x)=frac{A_1}{(1-q_1x)}+frac{A_2}{(1-q_2x)}+... ]

    待定系数法,将上式通分以后,根据合并后的分子与上面的(P(x))对应项的系数相等,联立方程组解出(A_1,A_2,...)

    母函数的应用

    写出数列的母函数后,我们可以写出数列的通项公式,进而快速求出数列指定项(a_n)的值。

    既然我们可以把大部分母函数写成等比数列和的形式,那么我们就对于每一个等比数列,算出它的(x^n)的系数,最后相加即可得到(a_n)

    优选法

    就是三分求单峰函数的极值,只不过在区间的(0.382)(0.618)等分点求值,这样有一个值在下一次的时候还能用上。

    利用Fibonacci数列后一项比上前一项接近(0.618)的性质,可以使优选法取到整点。

    线性常系数齐次递推关系

    对于数列({a_n})有递推式

    (a_n+c_1a_{n-1}+c_2a_{n-2}+...+c_ka_{n-k}=0(a_0=d_0,a_1=d_1,...a_{k-1}=d_{k-1}))

    (forall c,d)都是常数,则称上式为(k)阶线性常系数齐次递推关系

    (C(x)=x^k+c_1x^{k-1}+c_2x^{k-2}+...+c_{k-1}x+c_k)称为特征多项式。

    求解

    经过复杂的变换,数列的母函数一定可以写成

    [G(x)=frac{P(x)}{1+c_1x+c_2x^2+...+c_kx^k} ]

    其中(P(x))为一个极其复杂的最高次项不超过(k-1)的多项式。

    分母显然等价于(x^kC(frac 1 x)),于是考虑解方程

    [C(x)=(x-α_1)^{k_1}(x-α_2)^{k_2}...(x-α_t)^{k_t} ]

    (α_1,α_2,...α_t)(C(x))在复数域内的(t)个根,称为特征根。显然可能有重根,(k_i)即为(α_i)的重复次数,于是有(sumlimits_{i=1}^t k_i=k)

    于是将(k)(x)乘进分母中得出

    [G(x)=frac{P(x)}{(1-α_1x)^{k_1}(1-α_2x)^{k_2}...(1-α_tx)^{k_t}} ]

    开始求(x^n)系数(a_n)三种情况只好死记硬背

    单根

    设有若干单根(α_1,α_2,...α_k)

    直接待定系数(A_1α_1^n+A_2α_2^n+...+A_kα_k^n)

    复根

    如果出现复根,肯定是一对一对的共轭复根(ρ(cosθpm isinθ))

    待定系数(Aρ^ncos nθ+Bρ^nsin nθ)

    多重根

    有一个(k)重根(α)

    待定系数((A_0+A_1n+A_2n^2+...+A_{k-1}n^{k-1})α^n)

    貌似也适用于单根((k=1))


    三种情况的待定系数式相加即为(a_n)的表达式

    将初始值(a_0=d_0,a_1=d_1,...a_{k-1}=d_{k-1})带入(a_n)的表达式中,得到一个(k)元方程组,求解即可。

    系数都求出来了,(a_n)当然求出来啦!

    整数的拆分

    运用母函数解释

    设有(n)个数的多重集({(d_1,k_1),(d_2,k_2),...(d_n,k_n)}),每个数可以任意选,那么可以构造一母函数

    [G(x)=(1+x^{d_1}+x^{2d_1}+...+x^{k_1d_1})...(1+x^{d_n}+x^{2d_n}+...+x^{k_nd_n}) ]

    展开可得

    [G(x)=1+a_1x+a_2x^2+a_3x^3+...+a_{(sum kd)-1}x^{(sum kd)-1}+x^{sum kd} ]

    其中(x^i)项系数(a_i)为将(i)拆成若干数的和的方案数。

    上面讨论的是可以任意选的情况。根据题目对选择数的限制,可以对母函数进行修改,(x^{Ad_i})不存在即表示数(d_i)不能选(A)个。

    Ferrers图像

    懒得解释图像,百度百科

    利用图像可以得到的重要性质:整数(n)拆分成最多不超过(m)个数的和的拆分数,和(n)拆分成最大不超过(m)的拆分数相等。

    指数型母函数

    对一个数列(a_0,a_1,a_2...)构造函数

    [G_e(x)=a_0+frac{a_1}{1!}x+frac{a_2}{2!}x^2+... ]

    称为指数型母函数。

    这个名字是怎么来的呢?

    (e^x)的麦克劳林级数(1+x+frac{x^2}{2!}+frac{x^3}{3!}+...),跟指数型母函数的定义式很像

    反过来说,序列({1,1,1,...})的指数型母函数显然为(e^x)

    如果需要进行组合意义的计数,常使用指数型母函数。

    常用变换

    [e^{kx}Leftrightarrow1+kx+frac{k^2}{2!}x^2+frac{k^3}{3!}x^3+... ]

    [e^{-x}Leftrightarrow1-x+frac{k^2}{2!}x^2-frac{k^3}{3!}x^3+... ]

    [frac{e^x+e^{-x}}2Leftrightarrow1+frac{k^2}{2!}x^2+frac{k^4}{4!}x^4+frac{k^6}{6!}x^6... ]

    第一类Stirling数

    %%litble%%

    定义为(n)个有区别的球划分成(m)个环的方案数。用(s(n,m))表示。

    [s(n,m)=(n-1)s(n-1,m)+s(n-1,m-1) ]

    [s(n,m)=[x^m](prodlimits_{i=0}^{n-1}(i+x)) ]

    第二类Stirling数

    %%GZY%%

    定义为(n)个有区别的球放进(m)个相同的盒子中,盒子不允许为空。另一种通俗的称呼是集合划分数。用(S(n,m))表示。

    [S(n,m)=mS(n-1,m)+S(n-1,m-1) ]

    [S(n,m)=frac{1}{m!}sumlimits_{k=0}^{m-1}(-1)^kinom{m}{k}(m-k)^n ]

    Catalan数

    定义为通过(n-2)条对角线把一个凸(n)边形分割的方案数。

    [C_{n+1}=frac 1 ninom{2n-2}{n-1} ]

    [C_n=frac{(2n)!}{n!(n+1)!} ]

    容斥原理与鸽巢原理

    德摩根定理

    符号约定:记(overline A)(A)的补集,(|A|)(A)的元素个数。

    (overline{Acup B}=overline Acapoverline B,overline{Acap B}=overline Acupoverline B)(naive)

    容斥原理

    先来直观的

    (|Acup B|=|A|+|B|-|Acap B|)

    (|Acup Bcup C|=|A|+|B|+|C|-|Acap B|-|Acap C|-|Bcap C|+|Acap Bcap C|)

    推广到求(|A_1cup A_2cup ...cup A_n|)(|igcuplimits_{i=1}^nA_i|)

    设一个集合的集合(S={A_1,A_2,...,A_n})

    那么枚举(S)的子集求并,如果这个子集大小为奇,那么容斥系数为(1),否则为(-1),总的式子长这样

    [|igcuplimits_{i=1}^nA_i|=sumlimits_{i=1}^{n}|A_i|-sumlimits_{i eq j}|A_icap A_j|+sumlimits_{i eq j eq k,i eq k}|A_icap A_jcap A_k|-... ]

    类似地,还可以反过来求(|overline{A_1}cap overline{A_2}cap ...capoverline{ A_n}|)(|igcaplimits_{i=1}^noverline{A_i}|)

    [|igcaplimits_{i=1}^noverline{A_i}|=|S|-sumlimits_{i=1}^{n}|overline{A_i}|+sumlimits_{i eq j}|overline{A_i}cupoverline{A_j}|-sumlimits_{i eq j eq k,i eq k}|overline{A_i}cupoverline{A_j}cupoverline{A_k}|+... ]

    莫比乌斯反演

    定义一个容斥系数(mu(d))

    [mu(d)=egin{cases}quad1quad,d=1\(-1)^k,d=p_1p_2...p_k(p是互不相同的质数)\quad0quad,otherwiseend{cases} ]

    (f(n),g(n))是定义在正整数上的个函数,满足

    [f(n)=sumlimits_{d|n}g(d) ]

    [g(n)=sumlimits_{d|n}mu(d)f(frac n d) ]

    鸽巢原理/抽屉原理

    (n)个抽屉里有(n+1)个苹果,则至少有一个抽屉里有两个苹果(naive)

    群论

    跳过群的基本概念吧,反正计数又用不着。

    置换群

    所有的有限群都可以用置换群表示。

    置换的定义:一个(n)元置换是一个排列二元组,一般写成

    [p=egin{pmatrix}1&2&3&...&n\a_1&a_2&a_3&...&a_nend{pmatrix} ]

    表示把序列中的(i)号元素替换为(a_i)号元素。

    第一行不一定要写成(1-n),将列任意交换得到的仍是原来的置换。

    Burnside引理

    (L=frac{1}{|G|}sumlimits_{pin G}不动点个数(p))

    Pólya定理

    定义(k)阶循环为一个序列((b_1,b_2,...b_k)),满足在置换中(a_{b_1}=b_2,a_{b_2}=b_3,...a_{b_k}=a_1)

    于是一个置换可以写成若干个循环的组合,比如

    [p=egin{pmatrix}1&2&3&4&5\2&4&5&1&3end{pmatrix} ]

    可以写成两个循环((1,2,4)(3,5))的形式。

    如果((b_1,b_2,...b_{k-1},b_k))((b_2,b_3,...b_k,b_1))视为等价的话,那么可以说每一个置换都有唯一的一个循环表示。

    (c_p)为置换(p)循环表示下循环的总数。在置换群(G)的意义下用(m)种颜色染物品,其方案数为(frac{1}{|G|}sumlimits_{pin G}m^{c_p})

  • 相关阅读:
    HDU 4757 Tree 可持久化字典树 trie
    BZOJ 4198: [Noi2015]荷马史诗 哈夫曼树 k叉哈夫曼树
    BZOJ 3253 Fence Repair 哈夫曼树 水题
    BZOJ 3572: [Hnoi2014]世界树 虚树 树形dp
    2-SAT的一些题目
    二分图相关定理 最小点覆盖 最小路径覆盖 最大独立集 最小覆盖集
    POJ 1469 COURSES 二分图最大匹配 二分图
    快速排序
    排序算法:希尔排序
    霍夫曼编码实现
  • 原文地址:https://www.cnblogs.com/flashhu/p/9568368.html
Copyright © 2011-2022 走看看