poj 1742 Coins
2015-06-22 22:40
260 查看
使用dfs没有得到想要的结果,暂时使用多重背包的原理使用dp实现。
#include<iostream> #include<string.h> #include<math.h> #include<fstream> #include<algorithm> #include<stdio.h> #include<queue> #include<vector> #define MAXSIZE 100 using namespace std; int n = 0, m = 0; int v[101], num[101]; int dp[100001], ans = 0, sum[100001]; int main() { //freopen("data_1742.txt","r",stdin); while(true) { ans = 0; scanf("%d%d", &n, &m); if (n == 0 && m == 0) break; for (int i = 1; i <= n; i++) { scanf("%d", &v[i]); } for (int i = 1; i <= n; i++) { scanf("%d", &num[i]); } memset(dp, 0, sizeof(dp)); dp[0] = 1; for (int i = 1; i <= n; i++) { memset(sum, 0, sizeof(sum)); for (int j = v[i]; j <= m; j++) { if (!dp[j] && dp[j - v[i]] && sum[j - v[i]] < num[i]) { dp[j] = 1; sum[j] = sum[j - v[i]] + 1; ans++; } } } printf("%d\n", ans); } return 0; }
相关文章推荐
- web python -- WSGI接口GET请求
- python相关面试题
- C语言及程序设计进阶例程-28 动态规划法问题求解
- 第一阶段冲刺站立会议报告——5
- 智慧教育文化(1)
- windows访问虚拟机中的linux
- 运行一个简单的C#程序
- C语言及程序设计进阶例程-27 贪心法问题求解
- C语言及程序设计进阶例程-26 回溯溯法问题求解
- Java-马士兵设计模式学习笔记-总结
- Oracle 12C -- 使用seed PDB创建新的pdb
- web python -- WSGI接口响应
- 字符集和字符编码
- 数据库事务基础知识
- 软件抄袭与创新的思考
- Python数据类型之数字类型、字符串类型
- C语言及程序设计进阶例程-25 排序问题及其求解
- 梦断代码阅读笔记之三
- 第一阶段冲刺站立会议报告——4
- 类模板——求数组最大值