链接:http://acm.hdu.edu.cn/showproblem.php?pid=2844

思路:多重背包 , dp[i] ,容量为i的背包最多能凑到多少容量,如果dp[i] = i,那么代表这个数能凑出来,ans+1;

实现代码:

#include<bits/stdc++.h>
using namespace std;
const int M = 1e5+10;
int lis[M],dp[M],a[M],c[M];
int main()
{int n,m,idx;while(cin>>n>>m){idx = 0;if(n==0&&m==0) break;for(int i = 1;i <= n;i ++) cin>>a[i];for(int i = 1;i <= n;i ++) cin>>c[i];for(int i = 1;i <= n;i ++){int k = 1,p = c[i];while(p > k){p -= k;lis[++idx] = a[i]*k;k*=2;}lis[++idx] = a[i]*p;}memset(dp,0,sizeof(dp));for(int i = 1;i <= idx;i ++){for(int j = m;j >= lis[i];j --){dp[j] = max(dp[j],dp[j-lis[i]]+lis[i]);}}int ans = 0;for(int i = 1;i <= m;i ++){if(dp[i] == i) ans ++;}cout<<ans<<endl;}
}

转载于:https://www.cnblogs.com/kls123/p/10685748.html

hdu 2844 Coins (多重背包+二进制优化)相关推荐

  1. HDU 2844 Coins 多重背包

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2844 Coins Time Limit: 2000/1000 MS (Java/Others)Mem ...

  2. HDU - 2844 Coins(多重背包+完全背包)

    题意 给n个币的价值和其数量,问能组合成\(1-m\)中多少个不同的值. 分析 对\(c[i]*a[i]>=m\)的币,相当于完全背包:\(c[i]*a[i]<m\)的币则是多重背包,考虑 ...

  3. HDU 2844 Coins (多重背包)

    题目链接 题意:Tony想要买一个东西,他只有n种硬币,每种硬币的面值为a[i],每种硬币的数量为c[i],要买的物品价值不超过m,输出1-m中有多少种价格Tony可以用硬币组合出来. 题解:多重背包 ...

  4. [多重背包+二进制优化]HDU1059 Dividing

    题目链接 题目大意: 两个人要把一堆宝珠,在不能切割的情况下按照价值平分,他们把宝珠分成6种价值,每种价值的宝珠n个. n<=200000 思考: 首先如果加和下来的价值是一个偶数 那么还分毛啊 ...

  5. HDU 5445 Food Problem 多重背包+二进制优化

    据说也可以用单调队列优化多重背包,但是我不会,所以还是选择了二进制优化... 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5445 题意:先给n,m, ...

  6. hdu2844 Coins(普通的多重背包 + 二进制优化)

    看完背包九讲的多重背包之后,这题目应该可以轻松做出来了 模型: 有N种物品和一个容量为V的背包.第i种物品最多有n[i]件可用,每件费用是c[i],价值是w[i].求解将哪些物品装入背包可使这些物品的 ...

  7. hdu-2844 Coins (混合背包+二进制优化)

    HDU链接 文章目录 题目描述: 题意: 题解 (代码) 题目描述: 输入描述: 输出描述: For each test case output the answer on a single line ...

  8. POJ 1014 Dividing【多重背包+二进制优化】

    大意: 价值1, 2, 3, --, 6的物品分别a1, a2, --, a5, a6件 问能否把这些物品分成两份,使其具有相同的价值(所有物品必须全部用上) 分析: 给个物品有多件,即多重背包 只要 ...

  9. zcmu-1919: kirito(多重背包——二进制优化)

    Description 主角kirito是使用世界首款完全潜行游戏"刀剑神域(Sword Art Online)"的玩家.曾经很幸运的参与过封闭测试,并买下正式版的kirito,正 ...

  10. Dividing(多重背包二进制优化)

    题意:有价值为1-6的六种玻璃球,现在告诉你各种玻璃球的个数,问能否将这些玻璃球分成两份,使得两份的总价值相等 既然要等分,那么总价值必定是偶数,所以价值和为奇数是无法等分. 但价值和为偶数时,我们可 ...

最新文章

  1. 机器人替代研究员,工作007,完成688次实验,登上Nature封面
  2. 输入框中默认的值,判断是否输入内容
  3. visio科学图形包_科学网—科研必备:几款好用的流程图工具,助力你的论文/科研绘图...
  4. generatorConfig.xml头文件报红
  5. BZOJ 2432 兔农
  6. 清华大学软件工程课程总结
  7. 互联网数据分析岗实习感受
  8. python中chr65_Python语句 print(chr(65))的运行结果是
  9. 使用 Certbot 自动申请并续订阿里云 DNS 免费泛域名证书
  10. 科学革命——承认自己无知的革命
  11. 学生学籍管理系统_登陆界面设计
  12. java js方法_JAVA调用js方法
  13. Windows10系统安装好用的截图软件--snipaste
  14. 双球坐标系_天球坐标系 - 中文百科
  15. GIS开发:分享NASA火灾地图(FIRMS Fire Map)
  16. 常用H5标签-第二部分
  17. mysql 黑马,mysql-黑马-day01
  18. 【效率工具】Mac上Alfred 实现查询 360/Chrome浏览器 历史记录+书签
  19. pfamscan 的使用_Pfam数据库蛋白编码能力预测说明
  20. 学计算机的初衷,计算机学习心得体会5篇

热门文章

  1. hdu 1231最大连续子序列 动态规划
  2. 在 Mac 上打开照片应用时遇到错误 4302,如何修复?
  3. 如何在 Mac 上的“音乐”应用和 iTunes 中创建 Genius 播放列表?
  4. vue封装element-ui的table组件,灵活配置表头实现表格内编辑,按钮,链接等功能。...
  5. 如何阻止事件冒泡和默认事件
  6. 你真的会用ABAP, Java和JavaScript里的constructor么? 1
  7. FQDN(Fully qualified domain name)
  8. 日常的SQL 语句使用
  9. cmd命令配置MySQL
  10. 云主机前景几何,风萧萧兮!