P2532 AHOI2012 樹屋階梯 卡特蘭數

2022-03-13 05:43:57 字數 1452 閱讀 9980

這個題是乙個卡特蘭數的裸題,為什麼呢?因為可以通過劃分來匯出遞推式從而判斷是卡特蘭數,然後直接上公式就行了。卡特蘭數的公式見鏈結。

**實現不難,就是乙個高精乘|除低精。

題幹:

輸入格式:

乙個正整數n(1<=n<=500),表示階梯的高度。

輸出格式:

乙個正整數,表示搭建方法的個數。(注:搭建方法的個數可能很大)

輸入樣例#1:複製

3
輸出樣例#1:複製

5
40%的資料:1<=n<=20

80%的資料:1<=n<=300

100%的資料:1<=n<=500

**:

#include#include

#include

#include

#include

#include

#include

using

namespace

std;

#define duke(i,a,n) for(int i = a;i <= n;i++)

#define lv(i,a,n) for(int i = a;i >= n;i--)

#define clean(a) memset(a,0,sizeof(a))

const

int inf = 1

<< 30

;typedef

long

long

ll;typedef

double

db;template

void read(t &x)

template

void

write(t x)

struct

node

;node init()

void mu(node &m,int

b) duke(i,

1,m.l)

}//int tot = 1;

while(m.a[m.l] > 10

)

}node dev(node m,

intb)

h.l =m.l;

while(h.a[h.l] == 0

) h.l--;

returnh;}

void

output(node m)

return;}

intn;

intmain()

duke(i,

1,n)

//l = dev(l,6);

output(l);

return0;

}

AHOI2012 樹屋階梯

卡特蘭數!至於為什麼是卡特蘭數,就稍微說那麼一兩句吧 對於乙個高度為 i 的階梯,我們可以在左上角填乙個高度為 k 的階梯,右下角填乙個高度為 i 1 k 的階梯剩下的我們用乙個大的長方形填上就可以啦 比如這個樣子 之後還需要高精,但是為了簡單好寫,這裡可以分解質因數,之後就變成另乙個單精度乘高精了...

AHOI2012 樹屋階梯

有無窮多的任意尺寸矩形,搭建乙個 n 級正階梯有多少種方案?任意大小為 i 的階梯,都可以由左上角放一塊大小為 j 的,右下角放一塊大小為 i j 1 的來構成,每一塊內部遞迴填充,對應 catalan 數 實現需要高精乘單精,高精除單精 include using namespace std co...

2822 AHOI2012 樹屋階梯

time limit 1 sec memory limit 128 mb submit 729 solved 424 submit status discuss 暑假期間,小龍報名了乙個模擬野外生存作戰訓練班來鍛鍊體魄,訓練的第 乙個晚上,教官就給他們出了個難題。由於地上露營濕氣重,必須選擇在高處的...