经典问题:
1.由n个+1和n个-1组成的排列中,满足前缀和>=0的排列有Catalan(N)种。
2.括号化问题。左括号和右括号各有n个时,合法的括号表达式的个数有Catalan(N)种。
3.有n+1个数连乘,乘法顺序有Catalan(N)种,相当于在式子上加括号。
4.n个数按照特定顺序入栈,出栈顺序随意,可以形成的排列的种类有Catalan(N)种。
5.给定N个节点,能构成Catalan(N)种种形状不同的二叉树。
6.n个非叶节点的满二叉树的形态数为Catalan(N)。
7.对于一个n*n的正方形网格,每次只能向右或者向上移动一格,那么从左下角到右上角的不同种类有Catalan(N)种。
8.对于在n位的2进制中,有m个0,其余为1的catalan数为:C(n,m)-C(n,m-1)。
9.对凸n+2边形进行不同的三角形分割(只连接顶点对形成n个三角形)数为Catalan(N)。
10.将有2n个元素的集合中的元素两两分为n个子集,若任意两个子集都不交叉,那么我们称此划分为一个不交叉划分。此时不交叉的划分数是Catalan(N)。
11.n层的阶梯切割为n个矩形的切法数也是Catalan(N)。
12.在一个2*n的格子中填入1到2n这些数值使得每个格子内的数值都比其右边和上边的所有数值都小的情况数也是Catalan(N)
对于出入栈问题:
分析问题:栈只能在一端操作,出栈的前提是栈中一定有数字,如果忽略这个前提,那么一共有C(2n,n)种走法,即:出栈入栈操作一共有2n次,总共要入栈n次,出栈n次。但这其中有非法的解,比如我先出栈n次再入栈n次,这种肯定是不合法的。
我们将这个问题几何化,构建数学模型:
我们起始点位于(0,0) 目标点是(2n,0) 有两种走法:一种向右上走一步,即从(i,j)->(i+1,j+1) 另一种向左下走一步,即(i,j)->(i+1,j-1)
要求不能越过x轴,问共