模板 卡特蘭 Catalan 數

2021-08-14 20:37:06 字數 610 閱讀 6378

令h(0)=1,h(1)=1,catalan數滿足遞推式 :

h(n)= h(0)*h(n-1)+h(1)*h(n-2) + ... + h(n-1)h(0) (n>=2)

資料特點:1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, …

另類遞推式 :

h(n)=h(n-1)*(4*n-2)/(n+1);

遞推關係的解為:

h(n)=c(2n,n)/(n+1) (n=0,1,2,...)

遞推關係的另類解為:

h(n)=c(2n,n)-c(2n,n+1)(n=0,1,2,...)

所有的奇卡特蘭數h(n)都滿足n=2k-1。所有其他的卡特蘭數都是偶數。

當n小於35時,可以利用long  long或_int64型別的數表示卡特蘭數,否則必須用高精度數

#includeusing namespace std;

#define n 32

#define ll long long

ll h[n];

int main(){

int i;

h[1]=1;

for(i=2;i

卡特蘭數 Catalan

問題 程式設計之美 第4.3節中提到了 買票找零 問題,查閱了下資料,此問題和卡特蘭數 cn有關,其定義如下 卡特蘭數真是乙個神奇的數字,很多組合問題的數量都和它有關係,例如 yyy xyxxyy xyxyxy xxyyxy xxyxyy ab c d a bc d ab cd a bc d a b...

catalan(卡特蘭)數

一 h n h 0 h n 1 h 1 h n 2 h n 1 h 0 其中n 2 h 0 h 1 1 h n 4n 2 n 1 h n 1 n 1 h 0 1 h n c 2n,n 一般情況 要取模 下的求法 簡單的catalan模板題 這個題要取1e9 7的模,直接按照公式h n 4n 2 n ...

Catalan數(卡特蘭數)

卡特蘭數 規定h 0 1,而h 1 1,h 2 2,h 3 5,h 4 14,h 5 42,h 6 132,h 7 429,h 8 1430,h 9 4862,h 10 16796,h 11 58786,h 12 208012,h 13 742900,h 14 2674440,h 15 969484...