1、全错排的递推公式为:
![f(n) = (f(n-1)+f(n-2))*(n-1)](data/attach/1904/xla7v2xh1xiqd4ydv130wv4fhxnoomyk.jpg)
【解释】
![n](data/attach/1904/kcfo8dfwe24k0jon75vy1xxaek232m31.jpg)
个整数编号为
![1sim n](data/attach/1904/25xdx5wsdqyuk9f59wpyn6irsikd40de.jpg)
进行全排列,编号为
![i](data/attach/1904/xm2j0dnwk40vsseq77jy27co9j54lre4.jpg)
的数字不排在位置
![i](data/attach/1904/p7z0uhuc17yg39jrzdd23xeecy5mboio.jpg)
处,则为错排。全错排则是所有数字均排错。
【相关题目】
杭电2049
2、卡特兰数:
![C_n = frac{(2n)!}{(n+1)!n!}](data/attach/1904/zs4c04x9p28w9viqx2qxv0d80gv37ikc.jpg)
【解释】卡特兰数是一种经典的组合数,经常出现在各种计算中,其前几项为 1,1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796,...(
![ngeqslant 0](data/attach/1904/9sltdupqbcvpsd2xawkum0ia2kh4naor.jpg)
)
【递推公式】
![(n-3)C_n = n/2(C_3C_{n-1}+C_4C_{n-2}+...+C_{n-1}C_3)](data/attach/1904/hsgk9qprsd0th9cm4sjjqr7wo9xmnf5v.jpg)
所有的奇卡塔兰数
![C_n](data/attach/1904/n1oroxhtv14gno33g7iyj300gsh2vpsv.jpg)
都满足
![n = 2^k-1](data/attach/1904/f8kve4yiagqc6ebw5h33pl89wshwxp0u.jpg)
所有其他的卡塔兰数都是偶数。
卡塔兰数的渐近增长为
![C_n = frac{4^n}{n^{3/2}sqrtpi}](data/attach/1904/bfnpe3506ivofka88n37rhbze9jt4kbt.jpg)
【相关题目】1):给出一个n,要求一个长度为2n的01序列,使得序列的任意前缀中1的个数不少于0的个数。(求
![C_n](data/attach/1904/27e5bn17hbzltfp09zkt2qo0zsia9x54.jpg)
即可)
2):
![C_n](data/attach/1904/xmugmrr4i7y98ep3lgf0n3cjzxkq1sxt.jpg)
表示所有包含n组括号的合法运算式的个数。 n对左右括号。((())) ()(()) ()()() (())() (()())
3):
![C_n](data/attach/1904/zsizxrvjsi03hfs8j9spdpszcqc4qw5s.jpg)
表示有n+1个叶子的二叉树的个数
![](data/attach/1904/qidqg27nktc7ak8r4gfr4xaqgabffnpj.jpg)
4):
![C_n](data/attach/1904/3foghq1k63lalzqkqvmm5a3lpnd3gckj.jpg)
表示所有在n × n格点中不越过对角线的单调路径的个数 (一个单调路径从格点左下角出发,在格点右上角结束,每一步均为向上或向右 )
![](data/attach/1904/cpjz0enz63roi7wtry5f7ocvsmfflu2z.jpg)
5):
![C_n](data/attach/1904/vgc267cylcf67iqcf2f28ibowdm8uixz.jpg)
表示通过连结顶点而将n + 2边的凸多边形分成三角形的方法个数
下图中为n = 4的情况:
![](data/attach/1904/qroumtu6l05m6cnkoombhkex1lo88li3.jpg)
6):
![C_n](data/attach/1904/7t3z3ipyl716olotlimtpm89d3lkxs7i.jpg)
表示用n个长方形填充一个高度为n的阶梯状图形的方法个数
下图为 n = 4的情况:
![](data/attach/1904/t21sfnn1oa5p3atnk9iozt47yr1wgo4n.jpg)
7):
![C_n](data/attach/1904/kfbu2osas9mahvzvsdmw6l1ymg8esv05.jpg)
表示所有不同构的含n个分枝结点的满二叉树的个数(一个有根二叉树是满的当且仅当每个结点都有两个子树或没有子树)
8):
![C_n](data/attach/1904/74527hilofkzx14uvxvdd4tay7bt6kyt.jpg)
表示集合
![{1,2,...,n}](data/attach/1904/9za8wuk9nufrifjyrbzc7fs9jchmrbuh.jpg)
的不交叉划分的个数. 其中每个段落的长度为2
9):
![C_n](data/attach/1904/t5yt0jcnbkypa4mfl3ukd155azx1nf3l.jpg)
表示对
![{1,2,...,n}](data/attach/1904/62gw3jg67a8e2ad6hckggw6mxu3h9c67.jpg)
依序进出栈的置换个数
【经典问题总结】
1):括号化问题
矩阵连乘:
![P = a_1*a_2*...*a_n](data/attach/1904/8ftgz07bckngej4ozkw74pqis3l3imsg.jpg)
,依据乘法结合律,不改变其顺序,只用括号表示成对的乘积,试问有几种括号化的方案?(
![C_n](data/attach/1904/gtyyme33xpk98ok5hjpc7we975ng6olr.jpg)
)
2):出栈次序问题
一个栈(无穷大)的进栈序列为
![1,2,...,n](data/attach/1904/w4x26auv5z8j9azgezbyx8x11qhewje4.jpg)
有多少个不同的出栈序列?
类似:
(1)有2n个人排成一行进入剧场。入场费5元。其中只有n个人有一张5元钞票,另外n人只有10元钞票,剧院无其它钞票,问有多少中方法使得只要有10元的人买票,售票处就有5元的钞票找零?(将持5元者到达视作将5元入栈,持10元者到达视作使栈中某5元出栈)
(2)在圆上选择2n个点,将这些点成对连接起来,使得所得到的n条线段不相交的方法数。
3):将多边行划分为三角形问题(将一个凸多边形区域分成三角形区域的方法数? )
类似:一位大城市的律师在她住所以北n个街区和以东n个街区处工作。每天她走2n个街区去上班。如果她从不穿越(但可以碰到)从家到办公室的对角线,那么有多少条可能的道路?
4):给顶节点组成二叉树的问题
给定N个节点,能构成多少种形状不同的二叉树?
先去一个点作为顶点,然后左边依次可以取0至N-1个相对应的,右边是N-1到0个,两两配对相乘,就是
![C_0C_{n-1} + C_1C_{n-2}+C_2C_{n-3}+...+C_{n-1}C_0 = C_n](data/attach/1904/qup3y6o64x6wgn2cep1blc2ct899ukmt.jpg)
【参考资料】
CSDN博客 卡特兰数(好像很有用的说)
百度百科 卡特兰数