杭電 1521 排列組合

2022-03-20 22:13:11 字數 750 閱讀 8044

problem description

有n種物品,並且知道每種物品的數量。要求從中選出m件物品的排列數。例如有兩種物品a,b,並且數量都是1,從中選2件物品,則排列有"ab","ba"兩種。

input

每組輸入資料有兩行,第一行是二個數n,m(1<=m,n<=10),表示物品數,第二行有n個數,分別表示這n件物品的數量。

output

對應每組資料輸出排列數。(任何運算不會超出2^31的範圍)

sample input

2 21 1

sample output

2author

xhdrecommend

xhd問題描述:n個物品,每種物品的數量已知,然後從中選取m個物品進行排列,問有多少種排列方法?

問題解答:從網上的相關資料中得知,本題屬於組合數學中母函式問題!所以就搜了一些關於指數型母函式的理論知識,覺得看懂後就找了份相關**拿來看,看懂後發現指數型母函式相乘的**和一般母函式的**實現由很大的相似!而在我看的那份**裡for迴圈的控制語句,寫的很好,可以減少一些不必要的計算!

1 #include 2 #include 

3int fac = ;

4int

main()529

}30 printf( "

%.0lf\n

",fac[m] *c1[m] );31}

32return0;

33 }

view code

杭電1436 排列組合(二)

有n個字母,每個字母的數量不定。用這n個字母組成乙個長為m的串,並且規定這個串中每個字母能出現的次數。求這樣的串的總數。每組輸入資料的第一行有兩個數字n,m。接下來有n行,每行的第乙個數k表示對應字母可以出現的種數,接下來的k個數表示該字母可以在串 現的個數。其中0表示可以不出現。如測試資料,第乙個...

hdu 1521 排列組合

題意 problem description 有n種物品,並且知道每種物品的數量。要求從中選出m件物品的排列數。例如有兩種物品a,b,並且數量都是1,從中選2件物品,則排列有 ab ba 兩種。input 每組輸入資料有兩行,第一行是二個數n,m 1 m,n 10 表示物品數,第二行有n個數,分別表...

HDU 1521(排列組合)

母函式題,求排列使用指數型母函式,套用母函式模板即可。include include using namespace std const int maxn 15 int fac maxn 階乘 int num maxn double c1 maxn c2 maxn 計算10以內的階乘 void ge...