hdu1028(母函数应用)
来源:互联网 发布:德国骨科 知乎 编辑:程序博客网 时间:2024/06/01 07:31
题目要求:给定整数n,求n有多少种划分方式。(对于4来说,1+3和3+1是同一种划分方式)
题目思路:就是简单的母函数应用。对于整数n,可令G(x)=(1+x+x^2+x^3+...+x^n)(1+x^2+x^4+...)(1+x^3+x^6...)...
1+x+x^2+x^3+...+x^n的第i位x^i表示1取i次的情况,(1+x^2+x^4+...)的第i位表示2取i次的情况,依次类推。
母函数的其它应用:有1克、2克、3克、4克的砝码各一枚,能称出哪几种重量?每种重量各有几种可能方案?
令G(x)=(1+x)(1+x^2)(1+x^3)(1+x^4),(1+x^i)只有两项分别代表取或不取i克砝码,最终g(x)去括号后的系数对应方案数。
ac代码:
#include<iostream>using namespace std;const int maxn=123;int c1[123],c2[123];int main(){int n;while(~scanf("%d",&n)){//(1+x+x^2+x^3+x^4+...)(1+x^2+x^4+...)(1+x^3+x^6+...)for(int i=0;i<=n;i++){c1[i]=1;c2[i]=0;}for(int i=2;i<=n;i++){//表示第i个多项式for(int j=0;j<=n;j++)//前i-1个多项式去括号后肯定是n+1项,枚举之 for(int k=0;j+k<=n;k+=i)//枚举第i个多项式 c2[j+k]+=c1[j];//因为第i个多项式的系数初值为1,所以c2[]={0} for(int j=0;j<=n;j++){c1[j]=c2[j];c2[j]=0;}}printf("%d\n",c1[n]);}return 0;}ps:11点啦,不敲了,打了半天比赛,真累()。明天会进一步理解母函数。
阅读全文
1 0
- HDU1028母函数应用
- hdu1028(母函数应用)
- 母函数的应用hdu1028
- HDU1028 母函数
- HDU1028 (母函数模板)
- hdu1028母函数||dp
- hdu1028 母函数
- HDU1028(母函数)
- hdu1028 dp+母函数
- hdu1028(母函数)
- HDU1028,解析母函数
- hdu1028(母函数+DP)
- hdu1028(母函数)
- HDU1028(母函数)
- 母函数hdu1028
- hdu1028【母函数】
- HDU1028 拆分数母函数
- hdu1028——母函数
- Zabbix使用微信发送告警(附Python代码)
- 悲观锁与乐观锁
- Git 和 SVN 之间的五个基本区别
- String、Stringbuilder和Stringbuffer
- 打开虚拟机时显示不是有效的虚拟机配置文件是什么原因啊
- hdu1028(母函数应用)
- Ubuntu Win10 Sublime 3 主题插件配置折腾笔记
- JAVA内存与GC总结
- 基准测试工具sysbench简介
- 查找某进程 并过滤grep
- 当传统中医遇到互联网+时代会发生怎样的化学反应???乐享其约给你答案!!!!
- CCF 2016 09-4 修高铁 最短路径+最小生成树
- HashSet、LinkedHashSet和TreeSet三者区别与联系
- 一批文学电子书-手机电子书格式