hdu 2069 1 5 10 25 50 这几种硬币 一共100个(母函数)
2015-09-24 14:52
417 查看
题意: 有50 25 10 5 1 的硬币 一共最多有100枚 输入n输出有多少种表示方法
Sample Input
11
26
Sample Output
4
13
# include <iostream> # include <cstdio> # include <cstring> # include <algorithm> # include <string> # include <cmath> # include <queue> # include <list> # define LL long long using namespace std ; int c1[300][110],c2[300][110]; int ans[300] ; int w[6]={0,1,5,10,25,50}; void Init(){ memset(c1,0,sizeof(c1)); memset(c2,0,sizeof(c2)); c1[0][0]=1; for(int i=1;i<=5;i++) { for(int j=0;j<=250;j++) for(int k=0;j+k*w[i]<=250;k++) for(int p=0;k+p<=100;p++) c2[j+k*w[i]][p+k]+=c1[j]View Code [p]; for(int j=0;j<=250;j++) for(int p=0;p<=100;p++) { c1[j][p]=c2[j][p]; c2[j][p]=0; } } for(int i=1;i<=250;i++) for(int j=0;j<=100;j++) ans[i]+=c1[i][j]; //c1[11][3]表示这个方案 是用3枚硬币组成11的 ans[0]=1; } int main() { int n; Init(); while(~scanf("%d",&n)) { printf("%d\n",ans ); } return 0; }
相关文章推荐
- 【WPF】Windows App 比例布局的实现
- SqlDataAdapter.FillSchema(DataTable)方法填充数据表的主键和约束
- linux串口编程
- shell批量杀进程
- Android 手势(Gesture)——手势检测
- 无望延迟
- 针对产品经历笔试很好的一篇资料:应届生求职助理产品经理岗位,总是通不过笔试,下面是我一次笔试题目的答案,请问出了什么问题?
- Period---hdu1358(循环节 kmp)
- Collections的自定义排序sort Comparator
- 游戏中 ClippingNode 实现 标题划过的光效 (C++)
- linux常用指令
- 树
- 升级Xcode7 项目报错汇总
- poco c++感性认识
- 3-redundancy protocol-HSRP Configuration on Cisco IOS
- 关于scrollview的一些小问题
- js点击某个图标或按钮弹出文件选择框
- Linux常用命令大全
- jquery 如何修改itle的内容
- 硬盘容量换算公式