【题目描述】
“Well, it seems the first problem is too easy. I will let you know how foolish you are later.” feng5166 says.

“The second problem is, given an positive integer N, we define an equation like this:
N=a[1]+a[2]+a[3]+…+a[m];
a[i]>0,1<=m<=N;
My question is how many different equations you can find for a given N.
For example, assume N is 4, we can find:
4 = 4;
4 = 3 + 1;
4 = 2 + 2;
4 = 2 + 1 + 1;
4 = 1 + 1 + 1 + 1;
so the result is 5 when N is 4. Note that “4 = 3 + 1” and “4 = 1 + 3” is the same in this problem. Now, you do it!”
Input
The input contains several test cases. Each test case contains a positive integer N(1<=N<=120) which is mentioned above. The input is terminated by the end of file.
Output
For each test case, you have to output a line contains an integer P which indicate the different equations you have found.
Sample Input

4
10
20

Sample Output

5
42
627

【题目分析】
刚开始看感觉像是一个递推,可是推半天没找到什么明显的关系。知道是要用到组合数学里面母函数的知识后就去学习了一下母函数,还是挺好理解的,关键在于怎么进行灵活的运用。
我们在进行组合的时候多进行的是加法,而幂函数乘积就是系数之和的性质可以帮助我们进行组合的分析,而且这种组合是他们将相同系数合并后的,可以直接得到我们的结果。
关于母函数的学习,可以看看其他大佬的文章,总结起来就两句话

1.“把组合问题的加法法则和幂级数的乘幂对应起来”2.“母函数的思想很简单 — 就是把离散数列和幂级数一 一对应起来,把离散数列间的相互结合关系对应成为幂级数间的运算关系,最后由幂级数形式来确定离散数列的构造. “

在这个问题里面,我们想要选出能凑出这个数字的和的所有的数字,为了防止重复,我们从小往大选,选出来到最后的结果就是答案

其实我们进行的是模拟幂级数的乘法运算。

这里为了优化复杂度,我用i0和i1进行翻滚

【AC代码】

#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<iostream>
#include<cmath>
#include<climits>
#include<queue>
#include<vector>
#include<set>
#include<map>
using namespace std;typedef long long ll;
const int MAXN=125;
int n;
int ans[2][MAXN<<2];
int i0,i1;int main()
{while(~scanf("%d",&n)){memset(ans,0,sizeof(ans));i0=0; i1=1;for(int i=0;i<=n;i++){ans[i0][i]=1;}for(int i=2;i<=n;i++){for(int j=0;j<=n;j++){for(int k=0;k+j<=n;k+=i){ans[i1][j+k]+=ans[i0][j];}}swap(i0,i1);for(int i=0;i<=n;i++){ans[i1][i]=0;}}printf("%d\n",ans[i0][n]);}return 0;
}

HDU - 1028——母函数入门相关推荐

  1. hdu 1028 母函数入门题

    点击打开链接 题意:给出n n<=120,拆分n的方法数? (1+x^2+x^3+..x^n) *(1+x^2+x^4+x^6+...) *(1+x^3+x^6+...)  第i个表达式代表了数 ...

  2. hdu 1028 母函数 模版题

    母函数详解 http://www.wutianqi.com/?p=596 第二种: 求用1分.2分.3分的邮票贴出不同数值的方案数: 大家把这种情况和第一种比较有何区别?第一种每种是一个,而这里每种是 ...

  3. hdu 1028 母函数

    这道题比较简单,可以说是母函数的模板题,直接套用模板就可以解了. #include <cstdio> #include <iostream>using namespace st ...

  4. dp 母函数 入门 + 模板

    dp 母函数 入门 + 模板 在数学中,某个序列的母函数(Generating function,又称生成函数)是一种形式幂级数,其每一项的系数可以提供关于这个序列的信息.使用母函数解决问题的方法称为 ...

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

    感谢大佬! 感谢大佬 本文章从以上两位大佬的博客参考而来!再次感谢! 母函数,又称生成函数,是ACM竞赛中经常使用的一种解题算法,常用来解决组合方面的题目. 在数学中,某个序列的母函数(Generat ...

  6. hdu 1028 Ignatius and the Princess III 母函数入门

    传送门 文章目录 题意: 思路: 题意: 给你一个数nnn,问你有多少种方案用1−n1-n1−n的数能组成nnn,数的使用次数无限制. n≤120n\le120n≤120 思路: 考虑构造母函数. 对 ...

  7. hdu 1398 Square Coins/hdu 1028 Ignatius and the Princess III

    两道母函数的模板题: http://acm.hdu.edu.cn/showproblem.php?pid=1398 View Code #include<iostream>#include ...

  8. 母函数 入门 + 模板

    在数学中,某个序列的母函数(Generating function,又称生成函数)是一种形式幂级数,其每一项的系数可以提供关于这个序列的信息.使用母函数解决问题的方法称为母函数方法. 母函数可分为很多 ...

  9. [恢]hdu 1028

    2011-12-16 08:28:00 地址:http://acm.hdu.edu.cn/showproblem.php?pid=1028 题意:一个整数n,可以表示为多少种和的形式. mark:dp ...

最新文章

  1. h5实现手机端等级进度条
  2. oracle 创建带参数的视图
  3. STP生成树连载:制服网络广播风暴(1)
  4. php一句话图片木马过滤_php一句话图片木马怎么解析
  5. jQueryMobile引入文件后样式无法正常显示
  6. Dump文件:线程dump和堆dump
  7. RAC的搭建(一)--安装环境准备
  8. 【机器学习】传统目标检测算法总结
  9. Organizational Data assignment block里value help的determine逻辑
  10. Linux usb bus日志如何打开,从linux usb bus节点来认识usb linux usb认识
  11. 目标检测——使用loss发现噪声数据
  12. java 中的随机数
  13. 几个开源项目实体层实现方式比较
  14. MySQL最新版MySQL8.0百度云下载
  15. php聊天室简单实现
  16. stata基本操作(一)
  17. 重装系统找不到固态_SSD固态硬盘才装上确找不到盘怎么办 --好文
  18. 淘宝商品详情(新版)
  19. 学习大数据需要具备什么基础么?
  20. 图的遍历(深度优先遍历DFS,广度优先遍历BFS)以及C语言的实现

热门文章

  1. OSS网页上传和断点续传(OSS配置篇)
  2. java IO(一):File类
  3. Linux 常用命令二 pwd cd
  4. ScanTailor-ScanTailor 强大的多方位的满足处理扫描图片的需求
  5. UVALive 6257 Chemist's vows --一道题的三种解法(模拟,DFS,DP)
  6. 取消XP和2000专业版的IIS的用户数量限制
  7. java response 获得code_Java教程分享使用HttpClient抓取页面内容
  8. android签到功能模块,基于android的课堂签到系统.doc
  9. mysql锁表问题的解决方法_MYSQL锁表问题的解决方法
  10. 矩阵指数 matlab,矩阵指数 - MATLAB Simulink Example - MathWorks 中国