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是置换群和高斯消元的骚操作

原文地址:https://www.cnblogs.com/lcyfrog/p/12074311.html