母函式也叫生成函式,是組合數學中尤其是計數方面的乙個重要理論和工具。母函式有普通型母函式和指數型母函式兩種,其中普通型用的比較多。形式上說,普通型母函式用於解決多重集的組合問題,而指數型母函式用於解決多重集的排列問題。母函式還可以解決遞迴數列的通項問題(例如使用母函式解決斐波那契數列的通項公式)。
定義:
遞迴與母函式:
母函式題目小結:
母函式詳解與模板:
普通型母函式模板:
普通型母函式優化模板(引入last變數):int num;//因子個數
int n1[maxn];//n1[i]表示該乘積表示式第i個因子的起始係數
int n2[maxn];//n2[i]表示該乘積表示式第i個因子的終止係數
int v[maxn];//v[i]表示該乘積表示式第i個因子的權重
int p;//p是可能的最大指數
int a[maxn], b[maxn];//a為計算結果,b為中間結果。
void solve()
}
指數型母函式模板int num;//因子個數
int n1[maxn];//n1[i]表示該乘積表示式第i個因子的起始係數
int n2[maxn];//n2[i]表示該乘積表示式第i個因子的終止係數
int v[maxn];//v[i]表示該乘積表示式第i個因子的權重
int p;//p是可能的最大指數
int a[maxn], b[maxn];//a為計算結果,b為中間結果。
int last;//最大的指數字置
void solve()
}
int num;//物品個數
int v[maxn];//v[i]表示第i個物品可以選的個數
int p;//p是要選的物品總數
double a[maxn], b[maxn];//a為計算結果,b為中間結果。
double c[maxn];
void factorial()
void solve()
}}答案為a[p]*c[p]
母函式入門
題目 hdu1028 題意 整數拆分 乙個整數能有幾種拆分方式 解答 其中一種方法是用母函式。對於這道題來說是 1 x x 2 x 3 x 4.1 x 2 x 4 x 6 x 8 x 10 1 x 3 x 6 x 9 一直到n 最後算出來了結果之後係數表示拆分的方法數,指數表示拆幾 先給 inclu...
母函式入門2
c 母函式入門2 time limit 1000msmemory limit 32768kb64bit io format i64d i64u submit status description 話說上回講到hdu大戰東洋小苟,結果自然是中方大勝,這一戰也使得海東集團在全球同行業中的地位更加鞏固。隨...
母函式 入門習題
0ms 1500k 母函式。揹包 dp都行。include include typedef long long ll const int n 122 int n,f n tmp n int main printf d n f n return 0 0ms 1512k include include ...