uva 674Coin Change(完全背包)

简介: 点击打开链接uva 674 思路: 完全背包 分析: 裸题 代码: #include#include#include#includeusing namespace std;const int MAXN = 8000;...

点击打开链接uva 674

思路: 完全背包

分析: 裸题


代码:

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;

const int MAXN = 8000;

int sum , dp[MAXN];
int v[6]={0,1,5,10,25,50};

void solve(){
    memset(dp , 0 , sizeof(dp));
    dp[0] = 1;
    for(int i = 1 ; i <= 5 ; i++)
        for(int j = v[i] ; j < MAXN ; j++)
           dp[j] += dp[j-v[i]];
}

int main(){
    solve();
    while(scanf("%d", &sum) != EOF)
        printf("%d\n" , dp[sum]);
    return 0;
}



目录
打赏
0
0
0
0
15
分享
相关文章
uva674Coin Change
题意:手中的硬币币值有1,5,10,25,50共5种,给定一个面值n,问把n兑换成硬币的方案总数是多少。 分析:先打表,再输入输出。动态规划的简单题目,设dp[i]表示面值为i的情况下能兑换的种类,那么dp[i]=sigma(dp[i-v[j]]), j=0..4, v[j]={1,5,10,25,50};也就是,如果i大于v[j],说明能够用dp[i-v[j]]的方案再加上一枚面值为v[j]的硬币作为面值i的方案,不过这只是方案中硬币的数量多了一枚,题目中只是问方案数量,那么此时两者在方案数量上等价,那么方案总数上加上这一种情况就可以了。
735 0
Optimal Coin Change(完全背包计数)
题目描述 In a 10-dollar shop, everything is worthy 10 dollars or less. In order to serve customers more effectively at the cashier, change needs to be provided in the minimum number of coins. In this problem, you are going to provide a given value of the change in different coins.
102 0
uva 10801 - Lift Hopping
点击打开链接uva 10801 思路:最短路+Dijkstra 分析:          1 有n个电梯,电梯可以到达的层数是一定的,那么我们就把楼层看成是图上的点,那么我们就可以得到的哪些点是有连通的。
1018 0
poj 1787 Charlie's Change
思路: 多重背包 分析: 1 题目给定的数据明显就是多重背包,但是题目有个难点就是输出路径,0/1背包里面有输出路经的方法,做法做法是通过记录前面的状态 2 这一题还要求输出每种硬币的个数,那么这边利用mark数组,mark[i][0] ...
997 0
LeetCode 322. Coin Change
给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。
117 0
LeetCode 322. Coin Change
dp or 贪心 --- hdu : Road Trip
Road Trip Time Limit: 1000ms, Special Time Limit:2500ms, Memory Limit:65536KB Total submit users: 29, Accepted users: 29 Problem 12882 :...
852 0