前言
咕比賽寫博客的我。哭哭。
在本篇文章的剩余部分中,我們定義\(C(n)\)為卡特蘭數的第\(n\)項
定義
翻閱了一堆文章,也沒找到真正的定義,暫且拿這個充當定義:
\(C(n)\)表示,從原點出發,每次向x或y軸正方向移動1單位,到達點(n,n),且在移動過程中不越過第一象限平分線的移動方案數。

通項公式
我們記\(C(n)\)為卡特蘭數的第\(n\)項
證明

首先根據組合數學,我們知道如果不考慮第一象限平分線的限制,方案數為\(\left(\begin{matrix}2n \\ n\end{matrix}\right)\)。
注意到任何一種非法的方案,都至少有一個點\(p\)碰到了直線\(y=x+1\),那么我們將這條路徑在\(p\)點以上的在直線\(y=x+1\)以下的部分沿直線\(y=x+1\)鏡像到直線\(y=x+1\)上。
看圖理解:上圖中的綠線為\(y=x+1\),紅線為原非法路徑在\(p\)上的部分,藍線為鏡像后的結果。
我們會發現任何一種非法方案都可以變換成(0,0)到(n-1,n+1)的一條路徑,且存在一一映射關系,所以總方案數為:\(\left(\begin{matrix}2n \\ n\end{matrix}\right)-\left(\begin{matrix}2n \\ n+1\end{matrix}\right)\)
化簡
變形
遞推
應用
- n對括號的合法配對方案書
- n個節點的二叉樹的形態數
- n+1個葉子(n個非葉節點)的滿二叉樹的形態數, 走到左兒子+1,走到 右兒子-1,類似於括號匹配(大致同2)
- n個數入棧后出棧的排列總數
- 對凸n+2邊形進行不同的三角形分割的方案數(分割線斷點僅為頂點,且分割線僅在頂點上相交)
- n層的階梯切割為n個矩形的切法數
卡特蘭數與OI初賽
首先背誦上述應用場景,然后記憶卡特蘭數的前幾項:1,1,2,5,14,42,132。
拓展
\(n+m\)個人排隊買票,並且滿足\(n \geq m\),票價為50元,其中n個人有且僅有一張\(50\)元鈔票,m個人有且僅有一張\(100\)元鈔票,初始時候售票窗口沒有錢,問有多少種排隊的情況數能夠讓大家都買到票。
如果\(n=m\)可以直接用Catalan數解決,也就是將有50元的人看成是上述應用中的左括號,有100元的人看成是右括號。
對與\(n>m\)的情況,假設所有人都可以買到票的情況數是\(A_{n,m}\),不能讓每個人都買到的情況數是\(B_{n,m}\),設最早買不到票的人為\(p\),他一定手持100元且售票處沒有50元,那么這時將前p個人的錢從50元變成100元,從100元變成50元(不考慮順序,所以沒有影響),這時候就有\(n+1\)個人有50元,\(m-1\)個有100元的,所以就得到\(B_{n,m}=\left(\begin{matrix}n+m \\ n+1\end{matrix}\right)\),那么\(A_{n,m}=\left(\begin{matrix}n+m \\ n\end{matrix}\right)-\left(\begin{matrix}n+m \\ n+1\end{matrix}\right)\)。
這正是應用了上文證明的"翻折"思想。
