【背包专题】H - 钱币兑换问题 hdu1284【完全背包】

在一个国家仅有1分,2分,3分硬币,将钱N兑换成硬币有很多种兑法。请你编程序计算出共有多少种兑法。

Input每行只有一个正整数N,N小于32768。Output对应每个输入,输出兑换方法数。Sample Input

2934
12553

Sample Output

718831
13137761

思路:完全背包来解决这道题。先递推出只兑换1分硬币时的兑换方法有多少种,再递推出加入2分硬币后的兑换方法数,最后递推出加入3分硬币后的兑换方法数。
#include<stdio.h>
#include<string.h>
#define N 32769
int dp[N];
int value[3] = {1,2,3};
int main()
{
    int i,j,n;
    while(scanf("%d",&n)!=EOF)
    {
        memset(dp,0,sizeof(dp));
        dp[0] = 1;
        for(i = 0; i < 3; i ++)
            for(j = value[i]; j <= n; j ++)
                dp[j] += dp[j-value[i]];
        printf("%d\n",dp[n]);
    }
    return 0;
}
时间: 2024-08-03 15:16:05

【背包专题】H - 钱币兑换问题 hdu1284【完全背包】的相关文章

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

Problem Description 在一个国家仅有1分,2分,3分硬币,将钱N兑换成硬币有很多种兑法.请你编程序计算出共有多少种兑法. Input 每行只有一个正整数N,N小于32768. Output 对应每个输入,输出兑换方法数. Sample Input 2934 12553 Sample Output 718831 13137761 这道题其实我到现在还是不懂 #include<stdio.h> #include<string.h> #include<math.h

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

钱币兑换问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 7658    Accepted Submission(s): 4547 Problem Description 在一个国家仅有1分,2分,3分硬币,将钱N兑换成硬币有很多种兑法.请你编程序计算出共有多少种兑法. Input 每行只有一个正整数N,N小于32768. Outpu

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

钱币兑换问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 15134    Accepted Submission(s): 9117 Problem Description 在一个国家仅有1分,2分,3分硬币,将钱N兑换成硬币有很多种兑法.请你编程序计算出共有多少种兑法. Input 每行只有一个正整数N,N小于32768. Outp

杭电 1284 钱币兑换问题【完全背包求方案总数】

解题思路:因为对于完全背包的状态转移方程f[v]=max(f[v],f[v-c[i]]+w[i])已经记录了所有背包组成的方案,只不过通常问的是求最大值,现在要求方案总数 即为 f[v]=sum(f[v],f[v-c[i]+w[i]]), Problem Description 在一个国家仅有1分,2分,3分硬币,将钱N兑换成硬币有很多种兑法.请你编程序计算出共有多少种兑法. Input 每行只有一个正整数N,N小于32768. Output 对应每个输入,输出兑换方法数. Sample Inp

钱币兑换问题--hdu1284

Problem Description 在一个国家仅有1分,2分,3分硬币,将钱N兑换成硬币有很多种兑法.请你编程序计算出共有多少种兑法. Input 每行只有一个正整数N,N小于32768. Output 对应每个输入,输出兑换方法数. Sample Input 2934 12553 Sample Output 718831 13137761 完全背包: #include<iostream> #include<cstdio> #include<cstring> #in

【背包专题】 D - Coins hdu2844【多重背包】

Whuacmers use coins.They have coins of value A1,A2,A3...An Silverland dollar. One day Hibix opened purse and found there were some coins. He decided to buy a very nice watch in a nearby shop. He wanted to pay the exact price(without change) and he kn

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

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1284 递推公式:dp[i] = sum(dp[i], dp[i-C]) /* 钱币兑换问题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 6325 Accepted Submission(s): 3662 Problem Description

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

钱币兑换问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 5069    Accepted Submission(s): 2868 Problem Description 在一个国家仅有1分,2分,3分硬币,将钱N兑换成硬币有很多种兑法.请你编程序计算出共有多少种兑法. Input 每行只有一个正整数N,N小于32768. Outpu

钱币兑换问题(杭电1284)(母函数)

钱币兑换问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 6019    Accepted Submission(s): 3462 Problem Description 在一个国家仅有1分,2分,3分硬币.将钱N兑换成硬币有非常多种兑法. 请你编程序计算出共同拥有多少种兑法. Input 每行仅仅有一个正整数N.N小于32768.