[学习笔记] 卡特兰数

1. 一些公式

1.1. 递推式

[H_n=sum_{i=0}^{n-1}H_icdot H_{n-i-1} ]

原问题可以转化为:在平面直角坐标系中,从 ((0,0))((n,n)) 的不越过 (y=x) 的方案数。

于是我们可以枚举 (i),表示这种路径经过 ((i,i)) 却不经过 ((j,j),jin(i,n))。这样计算是不重不漏的。经过 ((i,i)) 的方案数是 (H_i),对于后面的方案,容易发现满足条件时一定有这两步:((i,i) ightarrow (i+1,i),(n,n-1) ightarrow (n,n))。这就变成一个大小为 (n-i-1) 的子问题。所以递推式正确。

1.2. 通项式

[H_n=inom{2n}{n}-inom{2n}{n+1} ]

[=frac{1}{n+1}cdot inom{2n}{n} ]

懒得证了。

事实上,我们可以用类似的方法分析另一个问题:在平面直角坐标系中,从 ((0,0))((n,m)) 的不越过 (y=x+b-1) 的方案数(默认 ((n,m))(y=x+b) 的右下方,不是应该也类似)。

我们将 ((n,m)) 沿 (y=x+b) 对称,得到对称点 ((m-b,n+b))。那么就有:

[ ext{Ans}=inom{n+m}{n}-inom{n+m}{n+b} ]

1.3. 递推式'

[H_{n+1}=frac{4n+2}{n+2}cdot H_n ]

懒得证了。

2. 一些题目

例 1. 经典模型

F.A.Q.

  • 对于有 (n+1) 个叶子的满二叉树个数?戳这

  • (n) 个长方形填充一个高度为 (n) 的阶梯状图形的方法个数?

    首先由于有 (n) 个阶梯,我们必须保证每个长方形填一个阶梯,因为一个长方形不可能填两个阶梯。问题就和 1.1. 递推式 很类似了:枚举填了左上角的长方形填了哪个阶梯,就可以划分成两个子问题。

原文地址:https://www.cnblogs.com/AWhiteWall/p/12605851.html