hdu 1133

題意:有m我的,每人只有一張50元,還有n我的,每人只有一張100元,這些人排隊買50元的電影票。售票處一開始沒有錢,問要讓這m+n我的所有順利買票的排隊方法有多少種。方法

分析:把只有50元的人記爲0,把只有100元的人記爲1,問題等價於,m個0,n個1組成的序列中,由左向右累計,在任意一個位置的0的累計數都很多於1的累計數的序列有多少排列方式,結果再乘以m!n!(由於每一個人都是不一樣的)。

這道題有一個巧妙的解法:

n=0時,答案顯然是m!

m<n時,答案是0

如今討論m>=n的狀況。

m=6,n=6時,一個非法的序列例如,001101100011(6個0,6個1),把第一個使序列非法的1右面的每一個位翻轉,即變成001101111100(5個0,7個1),能夠看出每一個非法的序列(6個0,6個1)都對應一個5個0,7個1的序列。

能夠證實m個0,n個1的任意一個非法序列的翻轉結果都是n-1個0,m+1個1的序列,並且前者跟後者是一一對應關係。所以,當咱們知道n-1個0,m+1個1的序列的排列總數也就知道咱們想求的序列的非法數。

因此這種狀況下的最終答案是(C(m+n,m) - C(m+n,m+1))*m!*n!。

相關文章
相關標籤/搜索