【模板】卡特兰数
ACM模板
目錄
- Catalan數證明
 - 卡特蘭數應用
 
Catalan數證明
1.卡特蘭數遞推式:
 an={1,n=0∑i=0n?1ai×an?1?i,n>0a_n=\begin{cases} 1,n=0\\\sum_{i=0}^{n-1}a_i×a_{n-1-i},n>0\end{cases} an?={1,n=0∑i=0n?1?ai?×an?1?i?,n>0?
 2.卡特蘭數組合數:
 an=C2nn?C2nn?1a_n=C_{2n}^n-C_{2n}^{n-1} an?=C2nn??C2nn?1?
 證明遞推式
先舉個例子,假如你身上沒有錢,但是你想花錢,你每次可以花一元錢,只要你有錢你可以連續花錢,你父母準備給你n元錢但是每次只給你一元錢,只要還沒給你n元錢就可以一直給,問你有多少種花錢方案?
如下圖,我們令父母給錢代表向右移動一個單位,花錢代表向上一個單位初始在原點(你沒有花錢,你父母也沒有給你錢)最終父母給我們n元錢,我們花掉n元錢。根據實際情況我們可以知道,我們花的錢一定不超過父母給我們的錢。抽象一下現在要求從(0,0)到(n,n)的一條路徑并且路徑上的所有點的縱坐標小于等于橫坐標
求從(0,0)到(n,n)的一條路徑的方案數為:C2nnC_{2n}^nC2nn?
如果某條路徑不合法,如上圖黑色路徑,路徑上存在點的縱坐標大于橫坐標,我們找到第一個不符合該條件的點如圖橘黃色的點,該點一定落在y=x+1y=x+1y=x+1這條直線上,我們將此不合法路徑橘色點的后部分關于y=x+1y=x+1y=x+1做對稱,如圖黃色部分該終點一定落在(n?1,n+1)(n-1,n+1)(n?1,n+1)。因此從求從(0,0)到(n,n)的不合法路徑的方案數可以轉化為從(0,0)到(n-1,n+1)的一條路徑的方案數為:C2nn?1C_{2n}^{n-1}C2nn?1?
從(0,0)到(n,n)的一條路徑并且路徑上的所有點的縱坐標小于等于橫坐標:C2nn?C2nn?1C_{2n}^{n}-C_{2n}^{n-1}C2nn??C2nn?1?
卡特蘭數應用
總結
                            
                        - 上一篇: 情人节发多少红包合适 情人节发多少红包合
 - 下一篇: kingdomrush攻略 kingdo