ps:原来用新浪,可是代码的排版不是很好,所以用博客园啦,先容许我把从八月份开始的代码搬过来,从这里重新出发,希望这里可以一直见证我的成长。

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 9186    Accepted Submission(s): 5591

Problem Description
在一个国家仅有1分,2分,3分硬币,将钱N兑换成硬币有很多种兑法。请你编程序计算出共有多少种兑法。
 
Input
每行只有一个正整数N,N小于32768。
 
Output
对应每个输入,输出兑换方法数。
 
Sample Input
2934
12553
 
Sample Output
718831
13137761
 
Author
SmallBeer(CML)
 
Source
 
完全背包:

#include<iostream>
using namespace std;
const int N=35000;
int a[N],b[N];
int main()
{
int n;
int i,j,k; a[0]=1;
for(i=1;i<=3;i++)
for(j=i;j<=N;j++)
{
a[j]+=a[j-i];
}
while(cin>>n)
{
cout<<a[n]<<endl;
}
return 0;
}

  拆分,先看能兑换多少三分的硬币,然后再加上两分的能换多少

#include<iostream>
using namespace std;
const int N=35000;
int a[N],b[N];
int main()
{
int n;
while(cin>>n)
{
int i;
int k=n/3+1;//n/3是n中能换多少个3,就有多少种方法,加一是还有全部用1组成的情况
for(i=0;i<=n/3;i++)//3分的数量从0开始遍历
{
int s=(n-3*i)/2;//2分的数量,除去当前三分的总额,还能有多少2分,就有多少情况;
k+=s;
}
cout<<k<<endl;
}
return 0;
}

  母函数模板直接套:

#include<iostream>
#include<string.h> using namespace std;
const int N=35000;
int a[N],b[N];
int main()
{
int i,j,n,k;
for(i=0;i<N;i++)
a[i]=1;
memset(b,0,sizeof(b));
for(i=2;i<=3;i++)
{
for(j=0;j<N;j++)
for(k=0;k+j<N;k+=i)
{
b[j+k]+=a[j];
}
for(j=0;j<N;j++)
{
a[j]=b[j],b[j]=0;
}
}
while(cin>>n) cout<<a[n]<<endl; return 0;
}

  

钱币兑换问题_完全背包&&拆分&&母函数的更多相关文章

  1. HDOJ(HDU).1284 钱币兑换问题 (DP 完全背包)

    HDOJ(HDU).1284 钱币兑换问题 (DP 完全背包) 题意分析 裸的完全背包问题 代码总览 #include <iostream> #include <cstdio> ...

  2. HDU 1284 钱币兑换问题 (完全背包)

    钱币兑换问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  3. HDU 1284 钱币兑换问题 (动态规划 背包方案数)

    钱币兑换问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  4. 钱币兑换问题---hdu1284(完全背包)

    Problem Description 在一个国家仅有1分,2分,3分硬币,将钱N兑换成硬币有很多种兑法.请你编程序计算出共有多少种兑法.   Input 每行只有一个正整数N,N小于32768.   ...

  5. hdu 1284 钱币兑换问题 (递推 || DP || 母函数)

    钱币兑换问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  6. HDU 1284 钱币兑换问题(全然背包:入门题)

    HDU 1284 钱币兑换问题(全然背包:入门题) http://acm.hdu.edu.cn/showproblem.php?pid=1284 题意: 在一个国家仅有1分,2分.3分硬币,将钱N ( ...

  7. HDU 1284 钱币兑换问题(普通型 数量无限的母函数)

    传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1284 钱币兑换问题 Time Limit: 2000/1000 MS (Java/Others)    ...

  8. HDU 1284 钱币兑换问题 母函数、DP

    题目链接:HDU 1284 钱币兑换问题 钱币兑换问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (J ...

  9. hdu 1284 钱币兑换问题 完全背包

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1284 递推公式:dp[i] = sum(dp[i], dp[i-C]) /* 钱币兑换问题 Time ...

随机推荐

  1. 详细解读Jquery各Ajax函数

    $.get(),$.post(),$.ajax(),$.getJSON() 一,$.get(url,[data],[callback]) 说明:url为请求地址,data为请求数据的列表,callba ...

  2. 用XmlSerializer进行xml反序列化的时候,程序报错: 不应有 <xml xmlns=''>

    原因 一,类型错误: 比如xml本来是UserInfo类型 用XmlSerializer进行反序列化传入的类型是MemberInfo这就会报错 二,xml根节点和对象的类名不一致,而又没有对类加入[X ...

  3. Entity Framework系列

    这个系列主要记录学习EF的过程和碰到的问题以及解决问题的方法. EF中的那些批量操作 EF的Model First

  4. Protocol Buffers in HBase

    For early Hbase developers, it is often a nightmare to understand how the different modules speak am ...

  5. java之io之File类的list()方法过滤目录的使用

    java的io的知识中,File类必须掌握.File类是对文件或者文件夹的封装.它本身并不能对所封装的文件进行读写,它封装的只是文件或文件夹的周边知识,比如 大小啦,创建日期啦,路径啦等等. 如果Fi ...

  6. C#画线源码

    画线 private void Form1_Load(object sender, EventArgs e) { this.Paint += new PaintEventHandler(Form1_P ...

  7. 10 notorious computer virus

    The history of computer virus is the same as computer history. With more and more powerful computers ...

  8. bzoj 2561: 最小生成树

    #include<cstdio> #include<iostream> #include<cstring> #define M 100009 #define inf ...

  9. bzoj 1934: [Shoi2007]Vote 善意的投票

    #include<cstdio> #include<iostream> #define M 100000 #include<cstring> using names ...

  10. socket编程概述

    一.基本流程如下: 整个TCP过程非常类似于电话系统.TCP是有两个不同主机上的进程需要进行通信,电话系统是有两个人位于不同地区的人需要进行通信. socket:获得可用于进程通信的端点.由于Linu ...