經典遞迴(排隊買票)

2021-07-28 15:09:36 字數 790 閱讀 6778

一場球賽開始前,售票工作正在緊張的進行中.每張球票為50元,現有

m+n個人排隊等待購票,其中有

m個人手持50元的鈔票,另外

n個人手持100元的鈔票.假設開始售票時售票處沒有零錢,求出

m+n排隊購票,

使售票處不至出現找不開錢的局面的不同排隊種數.(約定:拿同樣面值鈔票的人對換位置後為同一種排隊)

思路:f(m,n)表示

m個人手持

50元的鈔票,

n個人手持

100元鈔票時的排隊總數。

(1):

當n=0的時候情況是什麼樣子的?

(2):

當m時情況是什麼樣子的?

(3):其他情況

當第m+n個人手持

100元的紙幣,則他前面有

n-1個人手持

100元的紙幣,此時的情況我們可以縮小為

f(m,n-1);

當第m+n個人手持

50元紙幣的時候,則在他前面有

m-1個人手持

50元的紙幣,有

n人手持

100元的紙幣,此時我們所有的情況我們可以表示為

f(m-1,n);

由此我們可以得到f(m,n)的遞推關係:

f(m,n)=f(m-1,n)+f(m,n-1)

初試條件:

當m時,

f(m,n)=0;

當n=0時,

f(m,n)=1;

**:#include

int fun(int m,int n)

int main() 

經典例題 排隊買票

卡特蘭鏈結 題目描述 有m個小孩到公園玩,門票是1元。其中n個小孩帶的錢為1元,k個小孩帶的錢為2元。售票員沒有零錢,問這些小孩共有多少種排隊方法,使得售票員總能找得開零錢。注意 兩個拿一元零錢的小孩,他們的位置互換,也算是一種新的排法。m 10 輸入 輸入一行,m,n,k 其中m n k,m 10...

排隊買票 2種方法

排隊買票 time limit 1000ms memory limit 65536k total submit 240 accepted 81 description 乙個演唱會即將舉行,現有 n 個歌迷排隊買票,乙個人一張,而售票處規定,乙個人每次最多買兩張,假設買一張票的時間為 ti 1 i n...

問題 1163 排隊買票

時間限制 1sec 記憶體限制 128mb 提交 484 解決 199 題目描述 有m個小孩到公園玩,門票是1元。其中n個小孩帶的錢為1元,k個小孩帶的錢為2元。售票員沒有零錢,問這些小孩共有多少種排隊方法,使得售票員總能找得開零錢。注意 兩個拿一元零錢的小孩,他們的位置互換,也算是一種新的排法。m...