UVa 674 Coin Change(经典DP)
2012-11-11 19:59
363 查看
题意:
有1,5,15,25,50五种货币,问n元最多有多少种兑换方法
思路:
dp[i]表示i钱最多的兑换方法,dp[i+num[k]] += dp[i]。此时要注意dp的转移顺序。需要仔细理解。
(一开始用母函数做,果断超时了。也可以dfs记忆化搜索)
View Code
有1,5,15,25,50五种货币,问n元最多有多少种兑换方法
思路:
dp[i]表示i钱最多的兑换方法,dp[i+num[k]] += dp[i]。此时要注意dp的转移顺序。需要仔细理解。
(一开始用母函数做,果断超时了。也可以dfs记忆化搜索)
View Code
#include <cstdio> #include <cstdlib> #include <cstring> const int MAXN = 8000; long long int c1[MAXN], c2[MAXN]; int main() { int n; while (scanf("%d", &n) != EOF) { for (int i = 0; i <= n; ++i) c1[i] = 1, c2[i] = 0; int num[5] = {5, 10, 25, 50}; for (int i = 0; i < 4; ++i) { for (int j = 0; j <= n; ++j) for (int k = 0; k + j <= n; k += num[i]) c2[k+j] += c1[j]; for (int j = 0; j <= n; ++j) c1[j] = c2[j], c2[j] = 0; } printf("%lld\n", c1 ); } return 0; }
相关文章推荐
- UVa 674 Coin Change (经典DP)
- UVA674 Coin Change【0/1背包+DP】
- 【解题报告】uva674_Coin Change(硬币找零, dp, 完全背包)
- UVA 674-Coin Change(DP)
- uva 674 - Coin Change(dp)
- UVa 674 & hdu 2069 Coin Change (母函数,dp)
- UVA674——DP(找钱1)—— Coin Change
- Coin Change - UVa 674 换硬币的dp
- uva 674 Coin Change (DP)
- UVa 674 - Coin Change 背包dp
- UVA.674 Coin Change (DP 完全背包)
- UVa 674 - Coin Change 背包dp
- UVA 674 Coin Change 换硬币 经典dp入门题
- UVA - 674 Coin Change 经典问题
- UVA 674 Coin Change 换硬币 经典dp入门题
- UVA - 674 - Coin Change (背包型DP)
- uva674 - Coin Change(dp)
- POJ 1745 / UVa 10036 Divisibility (同余定理,DP,经典题目)
- Uva 10891 经典博弈区间DP
- UVa10934 - Dropping water balloons(经典dp)