UVA - 357 Let Me Count The Ways
2014-11-22 11:55
465 查看
题目大意:有5种硬币, 面值分别为1、5、10、25、50,现在给出金额,问可以用多少种方式组成该面值
解题思路:每种硬币都有无限个,所以是典型的完全背包,但是这一题的数据 n 最大到30000那么如果一直累加中间过程和是会超过int,所以我们必须用long
long ,其它还要注意方案数为1的时候输出比较不同
解题思路:每种硬币都有无限个,所以是典型的完全背包,但是这一题的数据 n 最大到30000那么如果一直累加中间过程和是会超过int,所以我们必须用long
long ,其它还要注意方案数为1的时候输出比较不同
#include <cstdio> int main() { long long n, M[5] = {1, 5, 10, 25, 50}, DP[30005] = {0}; DP[0] = 1; for (int i = 0; i < 5; i++) for (int j = M[i]; j < 30005 ; j++) DP[j] += DP[j-M[i]]; while (scanf("%lld", &n) != EOF) { printf(n < 5 ? "There is only 1 way" : "There are %lld ways", DP ); printf(" to produce %lld cents change.\n", n); } return 0; }
相关文章推荐
- UVA 357 Let Me Count The Ways 完全背包
- uva 357 let me count the ways
- uva 357 Let Me Count The Ways
- UVA 357 Let Me Count The Ways
- UVA 357 Let me count the ways
- UVA - 357 - Let Me Count The Ways(动态规划)
- UVA 357 Let Me Count The Ways Problem(动态规划 硬币)
- uva 357 - Let Me Count The Ways
- Let Me Count The Ways - UVa 357 dp
- uva_357 Let Me Count The Ways
- UVA 357 Let Me Count The Ways(完全背包)
- UVA 357 - Let Me Count The Ways(母函数)
- UVA 357 Let Me Count The Ways 动态规划解法、母函数解法
- UVa 357 - Let Me Count The Ways 背包
- uva 357 - Let Me Count The Ways
- UVa 357 - Let Me Count The Ways
- UVA 357 Let Me Count The Ways(全然背包)
- UVA 357 - Let Me Count The Ways
- UVa 357 - Let Me Count The Ways 背包
- uva 357 Let Me Count The Ways(01背包)