第五屆藍橋杯軟體類國賽真題 C B 2 出棧次序

2021-07-26 09:28:57 字數 1963 閱讀 8955

//第五屆藍橋杯軟體類國賽真題-c-b-2_出棧次序

/*【題目】

x星球特別講究秩序,所有道路都是單行線。乙個甲殼蟲車隊,共16輛車,

按照編號先後發車,夾在其它車流中,緩緩前行。

路邊有個死胡同,只能容一輛車通過,是臨時的檢查站,如圖【p1.png】所示。

x星球太死板,要求每輛路過的車必須進入檢查站,也可能不檢查就放行,也可能仔細檢查。

如果車輛進入檢查站和離開的次序可以任意交錯。那麼,該車隊再次上路後,

可能的次序有多少種?

為了方便起見,假設檢查站可容納任意數量的汽車。

顯然,如果車隊只有1輛車,可能次序1種;2輛車可能次序2種;3輛車可能次序5種。

現在足足有16輛車啊,親!需要你計算出可能次序的數目。

這是乙個整數,請通過瀏覽器提交答案,不要填寫任何多餘的內容(比如說明性文字)。

*//*【解題思路】

解法一:

我們把n個元素的出棧個數的記為f(n), 那麼對於1,2,3, 我們很容易得出:

f(1) = 1 //即 1

f(2) = 2 //即 12、21

f(3) = 5 //即 123、132、213、321、231

然後我們來考慮f(4), 我們給4個元素編號為a,b,c,d, 那麼考慮:

元素a只可能出現在1號位置,2號位置,3號位置和4號位置(很容易理解,一共就4個位置,

比如abcd,元素a就在1號位置)。

分析:1) 如果元素a在1號位置,那麼只可能a進棧,馬上出棧,此時還剩元素b、c、d等待操作,

就是子問題f(3);

2) 如果元素a在2號位置,那麼一定有乙個元素比a先出棧,即有f(1)種可能順序(只能是b),

還剩c、d,即f(2), 根據乘法原理,一共的順序個數為f(1) * f(2);

3) 如果元素a在3號位置,那麼一定有兩個元素比1先出棧,即有f(2)種可能順序(只能是b、c),還剩d,即f(1),

根據乘法原理,一共的順序個數為f(2) * f(1);

4) 如果元素a在4號位置,那麼一定是a先進棧,最後出棧,

那麼元素b、c、d的出棧順序即是此小問題的解,即f(3);

結合所有情況,即f(4) = f(3) + f(2) * f(1) + f(1) * f(2) + f(3);

為了規整化,我們定義f(0) = 1;於是f(4)可以重新寫為:

f(4) = f(0)*f(3) + f(1)*f(2) + f(2) * f(1) + f(3)*f(0)

然後我們推廣到n,推廣思路和n=4時完全一樣,於是我們可以得到:

f(n) = f(0)*f(n-1) + f(1)*f(n-2) + ... + f(n-1)*f(0)

解法二:

排列公式:c(n,2n)/(n+1) 【其中c(n,2n)表示2n裡取n)】

或者c(2n,2n)-c(n-1,2n)

答案:35357670

*/#includeusing namespace std;

#define max 16+1

int main()

; a[0] = a[1] = 1;

for(int i=2;i < max;i++)

while(--j);

a[i] = sum;

cout<<"f("/////*

// * @簡介:獲取排列c(m,n)結果 【其中c(m,n)表示從n裡取m)】

// * @引數:排列c(m,n)中的m、n值

// * @返回:排列c(m,n)的結果

//*/

//int getcatalannum(int m,int n)

////

// while(--m)

// //

// return a/b;

//}//

//int main()

//

第五屆藍橋杯軟體類國賽真題 C B 1 年齡巧合

第五屆藍橋杯軟體類國賽真題 c b 1 年齡巧合 題目 小明和他的表弟一起去看電影,有人問他們的年齡。小明說 今年是我們的幸運年啊。我出生年份的四位數字加起來剛好是我的年齡。表弟的也是如此。已知今年是2014年,並且,小明說的年齡指的是周歲。請推斷並填寫出小明的出生年份。這是乙個4位整數,請通過瀏覽...

第五屆藍橋盃國賽C B組 生物晶元

x博士正在研究一種生物晶元,其邏輯密集度 容量都遠遠高於普通的半導體晶元。博士在晶元中設計了 n 個微型光源,每個光源操作一次就會改變其狀態,即 點亮轉為關閉,或關閉轉為點亮。這些光源的編號從 1 到 n,開始的時候所有光源都是關閉的。博士計畫在晶元上執行如下動作 所有編號為2的倍數的光源操作一次,...

第五屆藍橋杯軟體類省賽真題 Java高職 等額本金

小明從銀行貸款3萬元。約定分24個月,以等額本金方式還款。這種還款方式就是把貸款額度等分到24個月。每個月除了要還固定的本金外,還要還貸款餘額在乙個月中產生的利息。假設月利率是 0.005,即 千分之五。那麼,第乙個月,小明要還本金 1250,還要還利息 30000 0.005,總計 1400 第二...