• WC集训DAY2笔记 组合计数 part.1


    补完了几天前写的东西

    WC集训DAY2笔记 组合计数 part.1

    今天开 幕 雷 击:PKUWC没过

    UPD:THUWC也没过,听说群友380过了,也是高一,我378...,WC集训完可以愉快地vanyousee了(呜呜呜

    UPD2:由于我在弱校,是高中rk1(黄神MLE了...),苟进了NOIWC

    写笔记,就是记结论的意思

    基础知识

    组合恒等式

    1. [2^n = (1+1)^n=sum_{i=0}^n C(n,i)*1*1=sum_{i=0}^n C(n,i) ]

    2. [sum_{i=m}^{n}left(egin{array}{c}{i} \ {m}end{array} ight)=left(egin{array}{c}{n+1} \ {m+1}end{array} ight) ]

    3. [left(egin{array}{c}{n} \ {m}end{array} ight)left(egin{array}{c}{m} \ {k}end{array} ight)=left(egin{array}{c}{n} \ {k}end{array} ight)left(egin{array}{c}{n-k} \ {m-k}end{array} ight) ]

      考虑左边选两次,右边直接选

    4. [sum_{i=0}^{k}left(egin{array}{c}{n} \ {i}end{array} ight)left(egin{array}{c}{m} \ {k-i}end{array} ight)=left(egin{array}{c}{n+m} \ {k}end{array} ight) ]

      考虑n个放左边,m个放右边

    错排数

    递推:

    (D_n=(n-1)(D_{n-1}+D_{n-2}))

    通项:加一个(i!),推出来是(D_n=n!sum_{i=0}^n(-1)^ifrac{1}{i!})

    或者直接容斥/二项式反演

    简化式:n!除以e+0.5向下取整

    考虑(frac{1}{e})的泰勒展开

    卡特兰数

    括号序列方案数

    递推式:(C_n=sum_{i=0}^{n-1}C_iC_{n-i-1})

    通项式(C_n=(2n,n)-(2n,n+1)=frac{1}{n+1}(2n,n))

    斯特林数

    要求集合/圆排列非空

    第一类斯特林数

    n个人m个圆排列方案数

    考虑组合意义,单独开一个圆排列则有S1(n-1,m-1),放进去则有n-1个位置可以放,(n-1)S1(n-1,m)

    [left[egin{array}{l}{n} \ {m}end{array} ight]=left[egin{array}{l}{n-1} \ {m-1}end{array} ight]+(n-1)left[egin{array}{c}{n-1} \ {m}end{array} ight] ]

    第二类斯特林数

    m个集合方案数

    递推式

    [left{egin{array}{l}{n} \ {m}end{array} ight}=left{egin{array}{l}{n-1} \ {m-1}end{array} ight}+mleft{egin{array}{c}{n-1} \ {m}end{array} ight} ]

    O(nm)求一个矩阵

    通项式

    容斥,考虑至少k个集合是空的

    (left{egin{array}{l}{n} \ {m}end{array} ight}=sum_{k=0}^{m}(-1)^{k}left(egin{array}{l}{m} \ {k}end{array} ight)(m-k)^{n})

    求单独一个的复杂度O(n)

    可以NTT,mlogm求一行

    求自然数幂之和

    [S_k(n)=sum_{i=0}^n i^k ]

    考虑SK(n)是关于n的k+1次多项式(归纳证明)

    那么用拉格朗日插值可以(O(k))

    后面讲的用斯特林数求啊,伯努利数求啊都不会。。。

    于是愉快地掉线了(( imes 1)

    与上升幂/下降幂关系

    [n^{m}=sum_{k=0}^{m}left{egin{array}{l}{m} \ {k}end{array} ight} C_{n}^{k} k !=sum_{k=0}^{m}left{egin{array}{l}{m} \ {k}end{array} ight} n^{underline{k}} ]

    [x^{ar{n}}=sum_{k}left[egin{array}{l}{n} \ {k}end{array} ight] x^{k} ]

    前一个就是组合意义,后一个要数学归纳证,所以可以分治NTTnlog^2求S1

    斯特林反演

    要证两个引理。。。

    证明听懂了一半,然后看 这位 大佬博客看懂了

    总之结论就是

    [egin{array}{l}{sum_{k=m}^{n}(-1)^{n-k}left[egin{array}{l}{n} \ {k}end{array} ight]left{egin{array}{l}{k} \ {m}end{array} ight}=[m=n]} \ {sum_{k=m}^{n}(-1)^{n-k}left{egin{array}{l}{n} \ {k}end{array} ight}left[egin{array}{l}{k} \ {m}end{array} ight]=[m=n]}end{array} ]

    [f(n)=sum_{k=0}^{n}left{egin{array}{l}{n} \ {k}end{array} ight} g(k) Longleftrightarrow g(n)=sum_{k=0}^{n}(-1)^{n-k}left[egin{array}{l}{n} \ {k}end{array} ight] f(k) ]

    伯努利数

    掉线了。。。(( imes 2)

    inf年后补吧

    贝尔数

    分成若干个非空无序集合的方案数

    (B_n=sum_{k=0}^nS2(n,k))

    (B_{n+1}=sum_{k=0}^n(n,k)B_k)

    好像还挺显然的?

    调和级数

    (H_n=sum_{i=1}^n frac{1}{i}=ln_n+欧拉常数+frac{1}{2n})

    (那两个符号不会打。。。)

    用于复杂度分析

    后记

    part2是高数(各种啥啥啥中值定理,洛必达)和生成函数和多项式神奇操作,自闭中。。。。

    part3是置换群和高斯消元的骚操作

  • 相关阅读:
    大白话五种IO模型
    test
    shutil模块(了解)
    isinstance和issubclass
    变量的三个特征
    匿名函数
    javascript location 对象
    select元素javascript常用操作
    设置mysql的用户权限
    jquery
  • 原文地址:https://www.cnblogs.com/lcyfrog/p/12074311.html
Copyright © 2020-2023  润新知