卡特兰数的前几项为:
1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670, 129644790, 477638700, 1767263190, 6564120420, 24466267020, 91482563640, 343059613650, 1289904147324, 4861946401452, …
通项公式为:Catalan[n] = C(2n,n)-C(2n,n+1) (n=0,1,2,…)
Catalan[n] = C(2n,n)/(n+1)
主要应用:
1.出栈次序问题:
n个元素进栈,问有几种出栈次序。
如下图,1,2,3,4顺序进栈,那么一种可能的进出栈顺序是:1In→2In→2Out→3In→4In→4Out→3Out→1Out, 于是出栈序列为1,3,4,2。
2.n个A,n个B,要求在1~i (1<=i<=2n)范围内B的数量不多于A的数量,问有几种合法排序方案。
3.由n对括号形成的合法括号序列的个数。
比如n=3时,所有合法的括号序列有: ((())), (())(), ()(()), ()()(), (()()),共5个。
4.二叉树异构:
有n个结点,问总共能构成几种不同的二叉树。
5.n+1个数连乘,求所有可能的乘法顺序
(n+1个叶子结点的满二叉树的个数)
如图(4个叶子结点的满二叉树的个数):
6.在n*n的格子中,只在下三角行走,每次横或竖走一格,有多少中走法?
其实向右走相当于进栈,向左走相当于出栈,本质就是n个数出栈次序的问题。
7.凸多边形的三角形划分:
一个凸的n边形,用直线连接他的两个顶点使之分成多个三角形,每条直线不能相交,问一共有多少种划分方案。
8.将一个凸n+2边形用n-1条对角线分成互不重叠的三角形区域的方法总数
9.圆内连弦
圆周上有2n个点,以这些点为端点连互不相交的条弦,求不同的连法总数。
10.排队买票问题
电影票每张50元,有2n个人排队买票,其中n个人各持有100元面值的钞票1张,另外n个人各持有50元面值的钞票1张,而票房没有预备找零.有多少种方法可以将这个2n人排成一列,顺序购票,使得无需因为等待找零而耽误时间?
卡特兰数题目:
CSU 1320: Scoop water
牛客NC15235: あなたの蛙が帰っています
参考博客:http://lanqi.org/skills/10939/