母函数大模版

//母函数模板

//形如(1+x^1+x^2+x^3+....+x^n)*(1+x^2+x^4+x^6+....+x^n)*......(1+x^m+x^2m+x^3m+....+x^n)

#include<iostream>
using namespace std;
const int lmax=10000;
int c1[lmax+1],c2[lmax+1];
int main()
{
 int n,i,j,k;
 while(cin>>n)
 {
    for(i=0;i<=n;i++)
    {
        c1[i]=1;c2[i]=0;
    }
    for(i=0;i<=n;i++) c1[i]=1;
    for(i=2;i<=n;i++)//一共有几个大括号(以第一个大括号为首,从与第二个大括号开始乘,
    //一直往下乘,直到完全算完,只有一个大括号)
    {
        for(j=0;j<=n;j++)//第一个大括号中的所有元素
           for(k=0;k+j<=n;k+=i)//第i个大括号中的所有元素
           {c2[j+k]+=c1[j];}
         for(j=0;j<=n;j++)//得到一个新的第一个大括号
         {
            c1[j]=c2[j];c2[j]=0;
         }

    }
    cout<<c1[n]<<endl;
 }
 return 0;
}
时间: 2024-11-05 17:42:05

母函数大模版的相关文章

华为项目管理的十大模版之甘特图(纯工具直接套用)

华为项目管理的甘特图被很多项目经理视为业界的模板,很多人都是挑不出啥毛病的.在自己不会用excel画甘特图的时候,就可以直接套用华为的项目管理十大模板,绝对能解决你当前的问题.所以小编就来给大家送福利了. (如果感兴趣可在评论中或直接私我找我要下载地址)自行下载后可直接套用. 原文地址:http://blog.51cto.com/13770432/2331654

线段树超级大模版

建树 void build(int o,int l,int r) //o:当前建立的节点 l:左端点 r:右端点 { if(l == r) //建立叶子信息 st[o] = a[l]; else { int m = l + ((r-l) >> 1); // m 为中间点,左儿子结点为 [l,m] ,右儿子结点为 [m+1,r]: build(o << 1,l,m); //构建左儿子结点 build((o<<1)|1,m+1,r); //构建右儿子结点 st[o] = m

HDU 2189 悼念512汶川大地震遇难同胞——来生一起走(母函数或完全背包)

悼念512汶川大地震遇难同胞--来生一起走 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3773    Accepted Submission(s): 1913 Problem Description 妈妈你别哭泪光照亮不了我们的路让我们自己慢慢的走 妈妈我会记住你和爸爸的模样记住我们的约定来生一起走 上面这首诗节选自一位诗人纪念遇难

HDOJ 2189 悼念512汶川大地震遇难同胞——来生一起走 【母函数】

题意:很清楚不解释. 策略:如题, 就是个简单的母函数的改变. 这道题做了好久,才明白是那有毛病,还是理解的不够深刻. AC代码: #include<stdio.h> #include<string.h> int c1[155], c2[155]; int pri[150] = {3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103,

POJ 1001 解题报告 高精度大整数乘法模版

题目是POJ1001 Exponentiation  虽然是小数的幂 最终还是转化为大整数的乘法 这道题要考虑的边界情况比较多 做这道题的时候,我分析了 网上的两个解题报告,发现都有错误,说明OJ对于错误的判断还不够严厉. 对边界情况的讨论其实应该是思维严密的表现,当然这并不能表明我写的一点错误都没有,只是多多分析一下还是很有好处的. #include <iostream> #include <fstream> #include <string> #include &l

HDU2189 悼念512汶川大地震遇难同胞——来生一起走 【母函数】

悼念512汶川大地震遇难同胞--来生一起走 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2328    Accepted Submission(s): 1157 Problem Description 妈妈 你别哭 泪光照亮不了 我们的路 让我们自己 慢慢的走 妈妈 我会记住你和爸爸的模样 记住我们的约定 来生一起走 上面这首诗节选

hdu5901 Count primes(大素数模版)

题意: 1——n(10^11)的素数个数 思路: 参考:http://blog.csdn.net/chaiwenjun000/article/details/52589457 第一个O(n^(3/4)) /* *********************************************** Author :devil ************************************************ */ #include <cstdio> #include <

Miller_Rabin大素数测试与Pollard_rho整数分解模版

#include <cstdio> #include <cstring> #include <cstdlib> #include <algorithm> using namespace std; typedef __int64 LL; const int Times = 20; LL factor[100], l; LL gcd(LL a, LL b) { return b ? gcd(b, a%b):a; } LL add_mod(LL a, LL b,

MillarRabin模版 随机测大素数

支持long long #include <algorithm> typedef long long ll; ll GCD(ll a, ll b) { return b ? GCD(b, a % b) : a; } ll MultiMod(ll a, ll b, ll n) { // a * b % n ll res = 0; MillarRabin a %= n; while (b > 0) { if (b & 1) { res += a; if (res >= n) r