码迷,mamicode.com
首页 > 其他好文 > 详细

母函数入门【模板】

时间:2019-09-22 01:30:02      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:模拟   style   pac   链接   ash   ref   http   using   拆分   

正整数拆分

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

母函数入门【模板】

标签:模拟   style   pac   链接   ash   ref   http   using   拆分   

原文地址:https://www.cnblogs.com/lfri/p/11565435.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!