一.分類
普通型母函數 | (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。
(指數型母函數,分母階乘和指數一樣,比如 分母一定是2!)
④展開式係數代表方案數
比1g,2g,3g的球中各取一個,母函數寫爲(1+)(1+)(1+)
最後展開後 係數代表方案數
代表最大能湊出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