生成函數/母函數--排列組合的多項式寫法

母函數理解(強烈建議)

母函數代碼

 

一.分類

 

 

普通型母函數 (1+ax)^n多項式展開 組合問題
指數型母函數 展開式,分母比上面多個n! 排列問題

                       

二.形式理解:

每個括號代表一種物品的取法

 

②*可以類比邏輯與,+代表邏輯或

因此(1+x)(1+x^2)可以理解爲,從1個質量爲1g和1個質量2g中取的所有情況

=(x^0+x)(x^0+x^2)   x^0=1,所以1可以看作取0個,即不取的情況。

 

指數代表權值(比如質量)

當然指數和個數也有關係,比如,取2個1g和取1個2g,他們母函數指數一樣,都是2。

(指數型母函數,分母階乘和指數一樣,比如\large x^{2} 分母一定是2!)

 

④展開式係數代表方案數

比1g,2g,3g的球中各取一個,母函數寫爲(1+x^{}^{})(1+x^{2})(1+x^{3})

最後展開後  係數代表方案數\large 1+x+x^{2}+2x^{3}+x^{4}+x^{5}+x^{6}   

代表最大能湊出6g,而湊出質量爲3g有2種方案

 

三.進一步實現及代碼

 

以每種物品總數劃分,有限和無限兩種題型:

Ⅰ.多項式展開後最大指數n<1e9(用數組能存下),用多項式乘法直接找;

比如給定2個1g,3個2g,組成6g有幾種?

比如總共n個,無限個1g和2g,多少種情況?(隱含最大質量爲2*n g)

 

Ⅱ.n過大,需要用數學方法化成公式。

比如總共n個,其中從1g和2g中取,有幾種方法?

 

3.n過大還需要用到FFT,bzoj3771 待更

 

之後題目會講。

hdu1521,2082 1709  1398

hdu2065  poj3734

hdu 1085 1028  1171 2069 2152

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章