母函数入门模板

Posted lfri

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了母函数入门模板相关的知识,希望对你有一定的参考价值。

正整数拆分

hdu1028

解:

对于正整数 $n$ 的拆分,其母函数为

$$f(x) = (1+x+x^2+...)(1+x^2+x^4+...)(1+x^3+x^6+x^9+...)...$$

答案就是多项式展开后 $x^n$ 项的系数。

Code:

//其实就是模拟,从前往后一一合并

#include<bits/stdc++.h>
using namespace std;

const int _max = 10001;
int c1[_max], c2[_max];    //c1存放前面项计算出来的结果,c2存放中间结果
int n;

int main()

    while(scanf("%d", &n) == 1)
    
        for(int i=0; i<=n; ++i)
        
            c1[i] = 1;  //第一项系数全1
            c2[i] = 0;  //中间变量初始化为0
        
        for(int i=2; i<=n; ++i)   // 最多涉及前n项
        

            for(int j=0; j<=n; ++j)   // 枚举c1中的项
                for(int k=0; k+j<=n; k+=i)  // 枚举第i个大括号中的项
                
                    c2[j+k] += c1[j];
                
            for(int j=0; j<=n; ++j)     //转移到c1
            
                c1[j] = c2[j];
                c2[j] = 0;
            
        
        printf("%d\n", c1[n]);
    
    return 0;

 

 

参考链接:Tanky Woo——http://www.wutianqi.com/blog/596.html

以上是关于母函数入门模板的主要内容,如果未能解决你的问题,请参考以下文章

母函数入门模板

生成函数(母函数)入门详解

母函数 入门习题

母函数及其应用+模板

HDU 2082 母函数模板题

BZOJ3028 母函数入门