POJ1742 Coins 【多重背包】
2017-03-26 12:59
429 查看
题目链接:http://poj.org/problem?id=1742
题意:
一个人有 n 种硬币,每种硬币价值(Ai)不同,每种硬币都有一个数量(Ci),问能凑出多少个 m 以内的币值?
题解:
多重背包直接网上套
代码:
题意:
一个人有 n 种硬币,每种硬币价值(Ai)不同,每种硬币都有一个数量(Ci),问能凑出多少个 m 以内的币值?
题解:
多重背包直接网上套
代码:
#include <cstdio> #include <cstring> #include <algorithm> using namespace std; int dp[100005]; int n, m; int a[105], b[105], sum[100005]; int main() { while( scanf("%d %d", &n, &m), n+m ) { for ( int i = 1; i <= n; i ++ ) scanf("%d", &a[i]); for ( 4000 int i = 1; i <= n; i ++ ) scanf("%d", &b[i]); memset(dp, 0, sizeof(dp)); dp[0] = 1; int ans = 0; for ( int i = 1; i <= n; i ++ ) { memset(sum, 0, sizeof(sum)); for ( int j = a[i]; j <= m; j ++ ) { if(!dp[j] && dp[j-a[i]] && sum[j-a[i]] < b[i]) { dp[j] = 1; sum[j] = sum[j-a[i]]+1; ans ++; } } } printf("%d\n", ans); } return 0; }
相关文章推荐
- POJ 1742 Coins (背包)
- poj-1742 Coins(多重背包优化)
- POJ1742——Coins 多重背包
- poj1742 Coins 动态规划 多重背包 待补完
- POJ 1742 Coins 单调队列多重背包
- POJ 1742 Coins 多重背包
- POJ - 1742 Coins(多重背包)@
- poj1742- Coins(多重背包)
- POJ 1742 Coins 多重背包入门题
- poj 1742 Coins (动态规划,背包问题)
- POJ 1742 Coins(多重背包) DP
- POJ 1742 Coins(多重背包可行性问题)
- POJ 1742 - Coins (dp 多重背包)
- poj-1742 COINS(多重背包问题)
- POJ 1742-Coins [dp 多重背包问题] 《挑战程序设计竞赛》2.3
- POJ-1742-多重背包-Coins
- poj 1742 Coins(多重背包)
- POJ 1742 Coins 优化后的多重背包
- POJ 1742 Coins (多重背包的可行解 o(nm))
- (优化的有限背包) poj 1742 Coins