普通型母函式模板理解

2021-07-04 10:58:32 字數 850 閱讀 9437

今天學習了一下母函式的知識,感覺它像是專門做一類題用的。

推薦乙個比較好的入門的母函式部落格:

我寫這篇文章的目的,就是為了再次總結一下他寫的那個模板,畢竟看了很久才懂的。

這裡我以 hdu 1028 這道題為例

這道題目的大致意思是:給你乙個正整數n,然後要你求有多少種可以加到n的方式。

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

#define maxn 125

int c1[maxn],c2[maxn];

int main()

for(int i=2;i<=n;i++)

}for(int j=0;j<=n;j++)

}//for(int i=0;i<=2*n;i++) printf("%d ",c1[i]); puts("");

printf("%d\n",c1[n]);

}}

這是一道母函式的模板題。

c1陣列是用來儲存各質量砝碼可以組合的數目,c2陣列則是為了儲存中間的結果。

首先在第乙個for中我們對c1陣列全部初始化為1,因為第乙個括號裡面的各項一開始係數均為1。

在我打嘆號的地方,我覺得這裡的意思是:對於指數為(k+j)的項,它的係數就直接加上c1[j]就好了,因為一開始它的係數為1,然後相乘後係數為c1[j]了,所以直接加上就好。

*我覺得這裡也用到了乙個貪心的思想,就是因為我們要得到的是n這個數有幾種組成方式,所以我們只需要求出n這個指數的係數就好了,對於大於它的可以不用求。

也許理解的並不是很好,希望指教!

數學 普通型生成函式

序列 a a 0,a 1,a 2,a 3,a 4,的普通型生成函式,定義為形式冪級數 f x sum limits a ix i 若序列 a 擁有通項公式,那麼 a i 就等於通項公式。再設 g x sum limits b ix i 有 f x pm g x sum limits a i pm b...

母函式模板

母函式,又稱生成函式,是acm競賽中經常使用的一種解題演算法,常用來解決組合方面的題目。本文講解母函式,但不講解該演算法的基礎理論。讀者隨便找一本組合數學教材便可找到相應的內容,或者直接在網上搜尋一下。母函式通常解決類似如下的問題 給5張1元,4張2元,3張5元,要得到15元,有多少種組合?某些時候...

母函式模板

研究以下多項式乘法 可以看出 x2項的係數a1a2 a1a3 an 1an中所有的項包括n個元素a1,a2,an中取兩個組合的全體 同理 x3項係數包含了從n個元素a1,a2,an中取3個元素組合的全體 以此類推。特例 若令a1 a2 an 1,在 8 1 式中a1a2 a1a3 an 1an項係數...