卡特兰数相关
Posted hzjuruo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了卡特兰数相关相关的知识,希望对你有一定的参考价值。
这一块一直学的不太好,基本停留在看到题可以看出来是个卡特兰数,但进一步的思考和推导,对我来说就变得困难起来,所以今天趁有时间,复习一下
前言
卡特兰数多用在组合数学的计数问题中,多是那种有两种选择,也就是求有限制的方案数
公式
$h(n)=h(0)\\timesh(n-1)+h(1)\\timesh(n-2)+\\cdots+h(n-1)\\timesh(0)$
$h(n)=\\frach(n-1)\\times(4\\timesn-2)n+1$
$h(n)=C_2\\timesn^n-C_2\\timesn^n-1$
$h(n)=\\fracC_2\\timesn^nn+1$
最后两个通项公式在组合数学中较为常用,关于最后两个通项公式的推倒,我简单推一下,其实就是对组合数公式的应用
$h(n)=C_2\\timesn^n-C_2\\timesn^n-1$
$=C_2\\timesn^n-\\frac(2\\timesn)!\\timesnn!\\timesn!\\times(n+1)$
$=C_2\\timesn^n-C_2\\timesn^n\\times\\fracnn+1$
$=\\frac1n+1\\timesC_2\\timesn^n$
最常见模型
常见的卡特兰数最基本最常见的模型是进出栈问题,也就是对于n个数,求其不同出栈次序的方案数,下面来自学长的解释
关键在于那个前缀和不小于零,很多题都可以简化为这种问题,对于卡特兰数这种进出栈模型,在下面还会提到另一种理解
简单应用
1.进出栈模型
2.二叉树计数
3.多边形划分
4.括号匹配
5.有限制的网格路径
简单例题
BZOJ3907网格
当$n=m$时,这道题就是一个裸的卡特兰数,向右看作进栈,向上看为出栈
那当$n>m$时呢?我们来考虑一下对于卡特兰数的另一种理解
我们将这道题化减为一个模型,给你$n$个1,$m$个0,要求一个$01$串,使得任意前k位中0的个数不少与1的个数,双倍经验,我们考虑用总的方案数减去不满足的方案数,总方案显然是$C_n+m^m$,现在我们考虑不满足要求的01串,前提是满足$n$个$1$,$m$个$0$,对于一个不合法$01$串,我们设在第$i$位上为1,且第一次出现1的个数-0的个数=1,那么此时假如我们把这个串的前$i$个位置,$01$取反,那在此时的串中就出现了$m+1$个0和$n-1$个1,我们发现这种相互转化的关系是唯一对应的,所以不合法的$01$串的方案数是$C_n+m^m+1$,所以最后的答案就是$C_n+m^m-C_n+m^m-1$,当$n=m$时,这个式子就是卡特兰数的通项公式
以上是关于卡特兰数相关的主要内容,如果未能解决你的问题,请参考以下文章