hdu 1521 排列組合

2021-07-09 17:37:55 字數 829 閱讀 2403

題意:

problem description

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

input

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

output

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

思路:這道題是一道指數型母函式的題。也就是說它是一道用來求排列數的問題。

直接套模板。。

這裡用了double型。可能會存在精度誤差。。

#include#include#include#include#include#include#include#include#include#includeusing namespace std;

typedef __int64 ll;

typedef unsigned __int64 ull;

#define inf 99999999

#define maxn 15

double c1[maxn],c2[maxn];

int a[maxn];

double factorial(double x)

return ans;

}int main(){

int n,m;

while(~scanf("%d%d",&n,&m)){

memset(c1,0,sizeof(c1));

memset(c2,0,sizeof(c2));

for(int i=0;i

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...

hdu1521 排列組合母函式)

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

V 排列組合 HDU 1521

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