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 #includeview code3int fac = ;
4int
main()529
}30 printf( "
%.0lf\n
",fac[m] *c1[m] );31}
32return0;
33 }
杭電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...