组合数学

排列数

\(A^m_n=n(n-1)(n-2) \cdot\ \cdot\ \cdot(n-m+1) =\frac{n!}{(n-m)!}\)

组合数

\(C^m_n=C^m_{n-1}+C^{m-1}_{n-1}\)

\(C^m_n=C^{n-m}_{n}\)

\(C^m_n=\frac{n}{m}×C^{m-1}_{n-1}\)

\(C^m_k×C^k_n=C^m_n×C^{n-k}_{n-m}(n-k<n-m)\)

\(\displaystyle\sum_{i=1}^n C^i_n = 2^n\)

\(\displaystyle\sum_{i=0}^n (-1)^i×C^i_n=0\)

\((a+b)^n = \displaystyle\sum_{i=0}^n C^i_na^{n-i}b^i\)(二项式定理)

\(C^m_n=\frac{A^m_n}{m!}=\frac{n!}{m!(n-m)!}=fac_n×invf_m×invf_{n-m}\)

阶乘预处理,逆元用费马小定理计算

\(Lucas\)定理

\(C^m_n=C^{m\ mod\ p}_{n\ mod\ p}×C^{m/p}_{n/p}\)

其中\(p\)为质数

\(code :\)

ll C(ll n,ll m)
{
	return n<m?0:((f[n]*qp(f[m],mod-2)%mod)*qp(f[n-m],mod-2))%mod;
}
ll lucas(ll n,ll m)
{
	return m?(C(n%mod,m%mod)*lucas(n/mod,m/mod))%mod:1;
}

错排

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

\(Catalan\)

\(1, 1, 2, 5, 14, 42, 132, 429, 1430......\)

\(f(n)=\sum\limits_{i=0}^{n-1}f(i)f(n-1-i)=C_{2n}^n - C_{2n}^{n + 1} = \frac{C_{2n}^n}{n + 1} = \frac{C_{2n}^{n + 1}}{n}\)

\(n \times n\)⽹格,只能向上向右⾛,不能⾛到对⾓线上⽅,从\((0,0)\)⾛到\((n,n)\)
⽅案数

\(n\)个元素的进出栈序列种类数

\(2n\)⻓度的正确匹配的括号序列数

\(n\)个节点的⼆叉树数⽬

\(n+1\)条边的凸多边形三⾓剖分的数⽬

\(Stirling\)

第⼀类斯特林数\(s(n,m)\)\(n\)个不同的物体,分成\(m\)个非空循环排列(圆排列)的⽅案数

\(s(n,m)=(n-1) \times s(n-1,m) + s(n-1,m-1)\)

第⼆类斯特林数\(S(n,m)\)\(n\)个不同的物体,分成\(m\)份的⽅案数,每份没有编号

\(S(n,m)=m \times S(n-1,m)+S(n-1,m-1)\)

posted @ 2020-01-22 20:31  lhm_liu  阅读(220)  评论(0编辑  收藏  举报