组合数学学习笔记
组合恒等式:
1.\(n \choose m\)=\(n-1 \choose m\)+\(n-1 \choose m-1\)
2.下降幂\(n^{m}\)就是\(A^{m}_{n}\)
3.\(\sum ^{m}_{i=0} {i \choose n}={m+1 \choose n+1}\)
4.范德蒙德卷积\(\sum^{k}_{i=0}{n \choose i}{m \choose k-i}={n+m \choose k}\)
5.\(\sum_{i=0}^{n} i{n \choose i}=n*2^{n-1}\)
卡特兰数:
公式
1.\(Cat_n=\sum \limits_{i=1}^{n}Cat_{i-1}Cat_{n-i}\)
2.$ Cat_n=\frac{4n-2}{n+1}Cat_{n-1} \(
3.\)Cat_n=C_{2n}{n}-C_{2n}=\frac{C_{2n}^{n}}{n+1} \(
例题与解释
1.经典的网格路径问题
从(0, 0)\)走到(n, m),只能向上或向右走,且不穿过y=x这条线的方案数。显然随便走的话方案数就是\(C_{n+m}^{n}\)一共走n+m步,其中有n步向右走)。考虑每一条不合法路径,也就是穿过了y=x,即触碰到了y=x+1,将第一次触碰到y=x+1的位置记作d,那么把d之后的路径沿y=x+1对称,就得到了一条从(0,0)到(m-1,n+1)的路径(相当于将(m,n)关于y=x+1对称)。可以发现每一条不合法路径都唯一对应一条从(0,0)到(m-1,n+1)的路径,这是一个双射关系,方案数为\(C_{n+m}^{n+1}\),最后答案为\(C_{n+m}^{n}-C_{n+m}^{n+1}\)。特别的,当n=m时,就是卡特兰数。
2.括号序列
左括号的数量始终大于等于右括号,即合法的括号序列。把左右括号看做1、-1,将x轴看作(,y轴看作),然后就满足了上面的性质。
3.进出栈问题
同上
这类问题都是,转化成1或2或3问题,通过公式3解决
4.阶梯的矩形划分(树屋阶梯)。
一个阶梯被若干个矩形划分的方案数。
发现n个角不可能处于同一个矩形,那么枚举n个角哪一个与左下角的方块在一个矩形内,那么上方还剩下i-1个角,下方还剩下n-i个角,则递推式如1。
5.二叉树的构成问题(凸多边形的三角划分)
枚举左子树的大小,得到递推式\(f_n=f_0f_{n-1}+f_1f_{n-2}……f_{n-1}f_0\)。
7.不相交弦
在一个圆上有2n个点,两两配对,所得的弦彼此不相交,在圆上任选两个点连接,把圆分成两部分,左侧2(i-1)个点,右侧2(n-i)个点,得到递推式。
容易发现,这个常用的是1和3公式,这通常是通过子状态转移过来(区间dp?),当我乱说,但确实有这种感觉。