补完了几天前写的东西
WC集训DAY2笔记 组合计数 part.1
今天开 幕 雷 击:PKUWC没过
UPD:THUWC也没过,听说群友380过了,也是高一,我378...,WC集训完可以愉快地vanyousee了(呜呜呜
UPD2:由于我在弱校,是高中rk1(黄神MLE了...),苟进了NOIWC
写笔记,就是记结论的意思
基础知识
组合恒等式
-
[2^n = (1+1)^n=sum_{i=0}^n C(n,i)*1*1=sum_{i=0}^n C(n,i) ]
-
[sum_{i=m}^{n}left(egin{array}{c}{i} \ {m}end{array} ight)=left(egin{array}{c}{n+1} \ {m+1}end{array} ight) ]
-
[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) ]
考虑左边选两次,右边直接选
-
[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)
第二类斯特林数
m个集合方案数
递推式
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求一行
求自然数幂之和
考虑SK(n)是关于n的k+1次多项式(归纳证明)
那么用拉格朗日插值可以(O(k))
后面讲的用斯特林数求啊,伯努利数求啊都不会。。。
于是愉快地掉线了(( imes 1))
与上升幂/下降幂关系
前一个就是组合意义,后一个要数学归纳证,所以可以分治NTTnlog^2求S1
斯特林反演
要证两个引理。。。
证明听懂了一半,然后看 这位 大佬博客看懂了
总之结论就是
伯努利数
掉线了。。。(( 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是置换群和高斯消元的骚操作