目录
- WC集训DAY2笔记 组合计数 part.1
- 基础知识
- 组合恒等式
- 错排数
- 卡特兰数
- 斯特林数
- 伯努利数
- 贝尔数
- 调和级数
- 后记
- 基础知识
补完了几天前写的东西
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(\begin{array}{c}{i} \\ {m}\end{array}\right)=\left(\begin{array}{c}{n+1} \\ {m+1}\end{array}\right) \]
\[ \left(\begin{array}{c}{n} \\ {m}\end{array}\right)\left(\begin{array}{c}{m} \\ {k}\end{array}\right)=\left(\begin{array}{c}{n} \\ {k}\end{array}\right)\left(\begin{array}{c}{n-k} \\ {m-k}\end{array}\right) \]
考虑左边选两次,右边直接选
\[ \sum_{i=0}^{k}\left(\begin{array}{c}{n} \\ {i}\end{array}\right)\left(\begin{array}{c}{m} \\ {k-i}\end{array}\right)=\left(\begin{array}{c}{n+m} \\ {k}\end{array}\right) \]
考虑n个放左边,m个放右边
错排数
递推:
\(D_n=(n-1)(D_{n-1}+D_{n-2})\)
通项:加一个\(i!\),推出来是\(D_n=n!\sum_{i=0}^n(-1)^i\frac{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[\begin{array}{l}{n} \\ {m}\end{array}\right]=\left[\begin{array}{l}{n-1} \\ {m-1}\end{array}\right]+(n-1)\left[\begin{array}{c}{n-1} \\ {m}\end{array}\right] \]
第二类斯特林数
m个集合方案数
递推式
\[ \left\{\begin{array}{l}{n} \\ {m}\end{array}\right\}=\left\{\begin{array}{l}{n-1} \\ {m-1}\end{array}\right\}+m\left\{\begin{array}{c}{n-1} \\ {m}\end{array}\right\} \]
O(nm)求一个矩阵
通项式
容斥,考虑至少k个集合是空的
\(\left\{\begin{array}{l}{n} \\ {m}\end{array}\right\}=\sum_{k=0}^{m}(-1)^{k}\left(\begin{array}{l}{m} \\ {k}\end{array}\right)(m-k)^{n}\)
求单独一个的复杂度O(n)
可以NTT,mlogm求一行
求自然数幂之和
\[ S_k(n)=\sum_{i=0}^n i^k \]
考虑SK(n)是关于n的k+1次多项式(归纳证明)
那么用拉格朗日插值可以\(O(k)\)
后面讲的用斯特林数求啊,伯努利数求啊都不会。。。
于是愉快地掉线了(\(\times 1\))
与上升幂/下降幂关系
\[ n^{m}=\sum_{k=0}^{m}\left\{\begin{array}{l}{m} \\ {k}\end{array}\right\} C_{n}^{k} k !=\sum_{k=0}^{m}\left\{\begin{array}{l}{m} \\ {k}\end{array}\right\} n^{\underline{k}} \]
\[ x^{\bar{n}}=\sum_{k}\left[\begin{array}{l}{n} \\ {k}\end{array}\right] x^{k} \]
前一个就是组合意义,后一个要数学归纳证,所以可以分治NTTnlog^2求S1
斯特林反演
要证两个引理。。。
证明听懂了一半,然后看 这位 大佬博客看懂了
总之结论就是
\[ \begin{array}{l}{\sum_{k=m}^{n}(-1)^{n-k}\left[\begin{array}{l}{n} \\ {k}\end{array}\right]\left\{\begin{array}{l}{k} \\ {m}\end{array}\right\}=[m=n]} \\ {\sum_{k=m}^{n}(-1)^{n-k}\left\{\begin{array}{l}{n} \\ {k}\end{array}\right\}\left[\begin{array}{l}{k} \\ {m}\end{array}\right]=[m=n]}\end{array} \]
\[ f(n)=\sum_{k=0}^{n}\left\{\begin{array}{l}{n} \\ {k}\end{array}\right\} g(k) \Longleftrightarrow g(n)=\sum_{k=0}^{n}(-1)^{n-k}\left[\begin{array}{l}{n} \\ {k}\end{array}\right] f(k) \]
伯努利数
掉线了。。。(\(\times 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是置换群和高斯消元的骚操作