鑑於Noip初賽考到了卡特蘭數.....整理一下。湊合着看。spa
1、介紹blog
卡特蘭數是一種經典的組合數,常常出如今各類計算中,其前幾項爲: ip
1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, it
2674440, 9694845, 35357670, 129644790, 477638700, 1767263190, im
6564120420, 24466267020, 91482563640, 343059613650, img
1289904147324, 4861946401452, ...移動
當你打表出來時,別不認識這是卡特蘭數。co
2、卡特蘭序列分割
通項公式:ps
遞推公式:
C(n) = C(1)*C(n-1) + C(2)*C(n-2) + ... + C(n-1)C(1),n>=2
通常性質:
3、證實 (挺神奇的.jpg
給你一個只有0和1的序列,n個0和n個1,從左向右掃描,要求任何是一個位置前綴1的個數大於等於
前綴0的個數,若不符合要求,則爲不合法序列。則合法序列的個數爲C(n,2n)-C(n+1,2n);證實這個問
題的答題思路是用全部序列的個數-不符合條件的個數。
S1:若是不考慮前綴1的個數大於等於0的個數,則方案數有C(n,2n)種。
S2:那麼不符合條件的方案數有多少種呢?接下來證實,不符合條件的方案數有C(n+1,2n)種。
假如n=5,我隨便寫一種不符合條件的序列。1010010101
從左往右掃描,發現到第5個位置,0的個數爲3,1的個數爲2,這是第一個不符合要求的位置。那麼咱們
能夠知道任何個不符合要求的序列,必定存在一個奇數位,此時前綴有m+1個0和m個1。則這個位置後面
還有n-(m+1)個0和(n-m)個1.此時把後面的0改爲1,1改爲0;那麼後面就有了n-(m+1)個1和(n-m)個0;
那麼總的序列就有,(m+1)+(n-m)=n+1個0,m+(n-m-1)=n-1個1。此時序列就變成有n+1個0,n-1個
1的序列。因爲0比1多兩個。因此這個序列不管怎麼排必定不合法。設第一個不合法的位置是x,則前
有m+1和0和m個1。這時把x後的0變成1,1變成0後,這個序列又回到了n個1,n個0的序列。因此不符
合條件的序列個數就是n+1個0和n-1個1的全部排列。
4、應用
下面其實都是網上抄的...
(1)
對於一個n*n的正方形網格,每次只能向右或者向上移動一格,那麼從左下角到右上角
全部在副對角線右下方的路徑總數爲
(2)對凸n+2邊形進行不一樣的三角形分割(只鏈接頂點對造成n個三角形)數爲Cn
(3)n個數入棧後的出棧的排列總數是
(4)n層的階梯切割爲n個矩形的切法數也是
(5)在一個2*n的格子中填入1到2n這些數值使得每一個格子內的數值都
比其右邊和上邊的全部數值都小的狀況數也是
(6)咱們能夠將應用1變換形式:將-1當作右括號,+1當作左括號,就變成了左括號和右括號各有n個時,合法括號表達式的個數。好比2個左括號和2個右括號組成的合法表達式有種,是()()和(())。