指數型母函式 HDU1521 排列組合 題解

2021-08-14 11:08:22 字數 992 閱讀 7245

n 個物品,第

i個物品有 nu

mi個,求選出

m 個物品組成排列的方案數。

如果不是組成排列,就是經典的普通型母函式。我們發現無法用普通型母函式表示出「組成排列」這個條件,實際上這是經典的指數型母函式(摘自這裡)。

口袋中有白球

2個,紅球

3 個,黃球

1個,任取

3 個作為乙個排列,總共有多少種排列?

類似地用指數型母函式解決:用 (1

+x1!

+x22

!)表示取白球

0 個,

1個或者

2 個那麼 (1

+x1!

+x22

!)(1

+x1!

+x22

!+x3

3!)(

1+x1

!)來表示所有的排列結果。=1

+3x1

!+8x

22!+

19x33

!+38x

44!+

60x55

!+60x

66!

找到次數為

3 的那一項,係數為

19,那麼總共有

19 種排列。

這道題就按照上面那麼做就行了。

#include

using

namespace

std;

typedef

double db;

const

int maxn=10;

int n,m,num[maxn+5],fac[maxn+5];db a[maxn+5],b[maxn+5];

int main()

printf("%.0f\n",a[m]*fac[m]);

}return

0;}

HDU 1521排列組合 指數型母函式

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

hdu 1521 排列組合 指數型母函式

高中知識,求全排列組合後,去重方法是除以相同物品的數量階乘。那麼如果我們再構造母函式的時候,就把階乘作為每一項的分母,那求出來就可以直接乘上全排列係數了。hdu4333 created by teddywang on 16 3 9.include include include include de...

hdu 1521 排列組合 指數型生成函式

題目 標準的指數型生成函式 wa了好幾遍,原來是多組資料啊囧 注意精度,直接強制轉換 int 是捨去小數,會wa,0.5再強制轉換或輸出 0lf 是四捨五入,能a。如下 include include include include using namespace std typedef doubl...