題目描述:給定乙個初始為空的棧,和n個操作組成的操作序列,每個操作只可能是出棧或者入棧。
要求在操作序列的執行過程中不會出現非法的操作,即不會在空棧時執行出棧操作,同時保證當操作序列完成後,棧恰好為乙個空棧。
求符合條件的操作序列種類。
例如,4個操作組成的操作序列符合條件的如下:
入棧,出棧,入棧,出棧
入棧,入棧,出棧,出棧
共2種。
輸入:輸入包含多組測試用例,每組測試用例僅包含乙個整數n(1<=n<=1000)。
輸出:輸出僅乙個整數,表示符合條件的序列總數,為了防止總數過多超出int的範圍,結果對1000000007取模(mod 1000000007)。
樣例輸入:
2410
樣例輸出:
1242
2023年王道論壇研究生機試練習賽(一)
#include#include#include#define maxn 1000000007
int x,a[1010];
void dabiao()
{ int i,j;
for(i=2;i<=1000;i++)
{ a[i]=0;
for(j=0;j
棧(卡特蘭數模板)
題目背景 棧是計算機中經典的資料結構,簡單的說,棧就是限制在一端進行插入刪除操作的線性表。棧有兩種最重要的操作,即pop 從棧頂彈出乙個元素 和push 將乙個元素進棧 棧的重要性不言自明,任何一門資料結構的課程都會介紹棧。寧寧同學在複習棧的基本概念時,想到了乙個書上沒有講過的問題,而他自己無法給出...
出入棧 九度1547 卡特蘭數 快速冪取餘
慢慢也發現自己的確跟不上節奏了。明明acm該是個狠好的選擇。可是時間至此時此刻,不能說沒有機會 只能說甚微了。為了自己的保研大業,在各種oj上亂刷幾題,也算是對自己的安慰。題目 題意 給乙個空棧和n步操作,保證每一步操作合法並且最終結果保證粘依舊為空。思路 奇數次操作一定輸出0,然後dfs輸出偶數次...
棧和卡特蘭數(Catalan number)
棧是計算機中經典的資料結構,我們也會遇到乙個常見的問題 一共有多少種合法的出棧順序?先說一下什麼是合法的出棧序列,凡是合法序列都遵循以下規律 即對於出棧序列中的每乙個數字,在它後面的 比它小的所有數字,一定是按遞減順序排列的。例如 有數字1 2 3 4 依次入棧,那麼他們的出棧順序中 所以到底有多少...