[组合计数]
1.排列数和组合数
$A_{n}^{m}=\frac{n!}{m!}$
$C_{n}^{m}=\binom{n}{m}= \frac{n!}{\left ( n-m \right )!m!}$
$C_{n}^{m}=\frac{A_{n}^{m}}{m!}$
2.多重集排列
多重集组合数就是多重集排列,与多重集的组合数不同。
设多重集$S=\left \{ n_{1}\cdot a_{1},n_{2}\cdot a_{2},\cdots ,n_{k}\cdot a_{k} \right \}$,那么S的全排列为:
$\frac{n!}{\prod_{i=1}^{k}n_{i}!}= \frac{n!}{n_{1}!n_{2}!\cdots n_{k}!}$
3.卡特兰数
以下摘自oi-wiki

递推式:
$Cat_{n}= \frac{\binom{2n}{n}}{n+1}\left ( n\geq 2 \right )$
4.lucas定理
$\binom{n}{m}\mod p= \binom{n/p}{m/p}\cdot \binom{p}{m\mod p}\mod p$
组合数很大但模数不很大(1e5+7等)时用
5.二项式定理
$\left ( x+y \right )^{n}=\sum_{i=0}^{n}\binom{n}{i}x^iy^{n-i}$
6.二项式反演
终于到了近乎玄学的NB东西
至多形式:若存在序列$f$,$g$,满足
$g_{m}=\sum_{i=0}^{m}\binom{m}{i}f_{i}$
那么有
$f_{m}=\sum_{i=0}^{m}\left ( -1 \right )^{m-i}\binom{m}{i}g_{i}$
至少形式:若存在序列$f$,$g$,$m \leq n$,满足
$g_{m}=\sum_{i=m}^{n}\binom{i}{m}f_{i}$
那么有
$f_{m}=\sum_{i=m}^{n}\left ( -1 \right )^{i-m}\binom{i}{m}g_{i}$
证明大概是将g代入式子,然后考虑i的贡献将sigma里的$j$,$i$互换位置,提取公因数后用二项式定理化简,最后证得相等。(此处令0的0次方为1)
7.范德蒙恒等式
$\sum_{i=0}^{k}\binom{m}{i}\binom{n}{k-i}= \binom{m+n}{k}$
等式左两个组合数下方的数之和可以大于$k$,因为大于$k$后会有部分组合没有意义而被视为$0$。
集合计数
在n个元素的集合的子集中选出若干集合,使交集元素为k的方案数。
注意到题目中的“恰好为K”,可以用二项式反演较简单地推出。
定义$f_i$为交集元素恰好为$i$个的方案数,$g_i$为交集元素至少为$i$个的方案数,那么有:
$g_{i}=\sum_{j=i}^{n}\binom{j}{i}f_j$
$f$的$j$个元素中有$i$个必选。
那么就能用二项式反演得:
$f_i=\sum_{j=i}^{n}\left ( -1 \right )^{j-i}\binom{j}{i}g_i$
之后考虑如何求$g$即可。对于$g_i$,集合中有$i$个元素必选,剩下元素组成的子集选不选皆可。
$g_i=\binom{n}{i}2^{2^{n-i}}$
最终答案为$f_k$。
Beautiful Bracket Sequence (hard version)
给定由左右括号与问号组成的字符串,求删掉部分字符后匹配括号最大深度的和。
注意到删去若干字符,另问号变为括号后串一定能变为一个合法括号序列。
首先考虑没有问号的情况,枚举删去字符后串的中点,记录每个中点的前缀“(”和后缀“)”,加和即可。
在此基础上考虑加入问号后的情况。
记录中点前缀“(”为$a$,后缀“)”为$b$,前缀“?”为$c$,后缀“?”为$d$。
对于中点$p$的贡献,有:
$ans_p$
$=\sum_{i=0}^{c}\left ( a+i \right )\binom{c}{i}\binom{d}{a+i-b}$
$=a\sum_{i=0}^{c}\binom{c}{i}\binom{d}{a+i-b}+i\sum_{i=0}^{c}\binom{c}{i}\binom{d}{a+i-b}$
$=a\sum_{i=0}^{c}\binom{c}{i}\binom{d}{d-a-i+b}+c\sum_{i=0}^{c}\binom{c-1}{i-1}\binom{d}{d-a-i+b}$
$=a\binom{c+d}{d-a+b}+c\binom{c+d-1}{d-a+b-1}$
范德蒙恒等式的应用,枚举中点求和即可。

浙公网安备 33010602011771号