題目一:
不同的出棧順序數
problem description
x星球特別講究秩序,所有道路都是單行線。乙個甲殼蟲車隊,共16輛車,按照編號先後發車,夾在其它車流中,緩緩前行。
路邊有個死胡同,只能容一輛車通過,是臨時的檢查站,如圖所示。
(圖見qq群)
x星球太死板,要求每輛路過的車必須進入檢查站,也可能不檢查就放行,也可能仔細檢查。
如果車輛進入檢查站和離開的次序可以任意交錯。那麼,該車隊再次上路後,可能的次序有多少種?
為了方便起見,假設檢查站可容納任意數量的汽車。
顯然,如果車隊只有1輛車,可能次序1種;2輛車可能次序2種;3輛車可能次序5種。
現在足足有16輛車啊,親!需要你計算出可能次序的數目。
這是乙個整數,不要填寫任何多餘的內容(比如說明性文字)。
input
無 output
輸出乙個整數
詳解: 和
h ttps:
卡特蘭數:
題目二:
世界末日還有多遠
problem description
漢諾塔(又稱河內塔)問題是源於印度乙個古老傳說的益智玩具。
大梵天創造世界的時候做了三根金剛石柱子,在一根柱子上從下往上按照大小順序摞著64片**圓盤。大梵天命令婆羅門把圓盤從下面開始按大小順序重新擺放在另一根柱子上(可以借助第三根柱子做緩衝)。並且規定,在小圓盤上不能放大圓盤,在三根柱子之間一次只能移動乙個圓盤。
如圖是現代「山寨」版的該玩具。64個圓盤太多了,所以減為7個,金剛石和**都以木頭代替了......但道理是相同的。
據說完成大梵天的命令需要太多的移動次數,以至被認為完成之時就是世界末日!
你的任務是精確計算出到底需要移動多少次。
很明顯,如果只有2個圓盤,需要移動3次。
圓盤數為3,則需要移動7次。
那麼64個呢?
input
無 output
輸出乙個整數,為64個羅盤需要移動的次數。注意,答案在long long範圍內。
思路:雖然它說答案來long long 範圍內,但其實剛好超出。可以把dp[63]的值 分割成兩部分,然後用計算器計算,再相加。
#include#include#include#includeusing namespace std;
#define ll long long
ll dp[80]=;
int main()
{ for(int i=4;i<=66;i++)
dp[i]=2*dp[i-1]+1;
cout《題目三:
lis:
和
資料結構題
題目背景 把一張紙對折100次就和珠穆朗瑪峰一樣高了哦 syh 題目描述 注 本系列題不按難度排序哦 第一行乙個n,m 接下來一行n個數表示a i 接下來m行,每行l,r,l1,r1,x,表示求get l,r,x get l1,r1,x 輸出描述 3 m行,先輸出get l,r,x 再輸出get l...
資料結構題
題目背景 把一張紙對折100次就和珠穆朗瑪峰一樣高了哦 syh 題目描述 注 本系列題不按難度排序哦 第一行乙個n,m 接下來一行n個數表示a i 接下來m行,每行l,r,l1,r1,x,表示求get l,r,x get l1,r1,x 輸出描述 3 m行,先輸出get l,r,x 再輸出get l...
BST資料結構題
給定bst。改動bst,使得每乙個點都是大於他的結點的值之和 關鍵是這題遞迴引數怎麼設計,每乙個點比他大的有兩快。乙個是右子書 假設有的話 還有乙個是祖先裡面比他大的,假設直接用這兩個的話,找不到遞迴結構。應該設計第乙個引數是祖先比他大的節點和,第二個引數是子樹的和。包含自身。struct node...