问题 Q: 【动态规划】多重背包

时间限制: 1 Sec  内存限制: 64 MB
提交: 112  解决: 49
[提交] [状态] [讨论版] [命题人:admin]

题目描述

张琪曼:“魔法石矿里每种魔法石的数量看起来是足够多,但其实每种魔法石的数量是有限的。”

李旭琳:“所以我们需要改变装包策略啦。”

现有N(N≤10)种魔法石和一个容量为V(0<V<200)的背包。第i种魔法石最多有n[i]件可用,每个占用的空间是c[i],价值是w[i]。全部物品总数不超过50。求解将哪些魔法石装入背包可使这些物品的容量总和不超过背包容量,且价值总和最大。

输入

第一行为两个数字,即V和N。以下N行为每种物品的空间,价值和数量。

输出

最大价值总和。

样例输入

8 2
2 100 4
4 100 2

样例输出

400

AC代码


#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>using namespace std;int w[100100],c[100100],m[100100];int f[100100];int n,v;int multiple(){for(int i=1;i<=n;i++){if(m[i]*c[i]>=v)for(int j=c[i];j<=v;j++)f[j]=max(f[j],f[j-c[i]]+w[i]);for(int k=1;k<m[i];m[i]-=k,k<<=1)for(int j=v;j>=k*c[i];j--)f[j]=max(f[j],f[j-k*c[i]]+w[i]*k);for(int j=v;j>=c[i]*m[i];j--)f[j]=max(f[j],f[j-m[i]*c[i]]+w[i]*m[i]);}return f[v];}int main(){cin>>v>>n;for(int i=1;i<=n;i++)cin>>c[i]>>w[i]>>m[i];cout<<multiple()<<endl;return 0;}

【动态规划】多重背包相关推荐

  1. 九十、动态规划系列背包问题之多重背包

    @Author:Runsen 曾几何时,才记得自己还是大一军训的菜鸟,带着 迷茫和憧憬踏入大学,踏入化工学院,却踏入这个行业,殊不知岁月是最高明的小偷,偷走时间,带走青春,一点线索也不留.大学的玩命学 ...

  2. 多重背包单调队列优化思路_动态规划入门——多重背包与单调优化

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是算法与数据结构的第14篇文章,也是动态规划专题的第三篇. 在之前的文章当中,我们介绍了多重背包的二进制拆分的解法.在大多数情况下,这种 ...

  3. c++ 多重背包状态转移方程_动态规划入门——详解经典问题零一背包

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是周三算法与数据结构专题的第12篇文章,动态规划之零一背包问题. 在之前的文章当中,我们一起探讨了二分.贪心.排序和搜索算法,今天我们来 ...

  4. 动态规划dp(带模板题の超易懂版):01背包,完全背包,分组背包,多重背包,混合背包

    动态规划dp(带模板题の超易懂版):01背包,完全背包,分组背包,多重背包 01背包 && 完全背包 && 分组背包 の 视频教程:https://www.bilibi ...

  5. 动态规划总结(01背包 完全背包 多重背包)

    动态规划总结(01背包 完全背包 多重背包) 一.学习资料 1.UVA DP 入门专题 2.夜深人静写算法(二) - 动态规划 3.算法之动态规划 4.什么是动态规划?动态规划的意义是什么? 5.01 ...

  6. java多重背包算法,【动态规划】多重背包问题

    说明 前面已经介绍完了01背包和完全背包,今天介绍最后一种背包问题--多重背包. 这个背包,听起来就很麻烦的样子.别慌,只要你理解了前面的两种背包问题,拿下多重背包简直小菜一碟. 如果没有看过前两篇0 ...

  7. 动态规划 背包问题小结 0-1背包(采药 九度第101题) 完全背包(Piggy-Bank POJ 1384) 多重背包(珍惜现在,感恩生活 九度第103题)

    本小结介绍0-1背包.完全背包以及多重背包问题 记忆要点: 0-1背包:二维数组情况下,顺序遍历体积或者倒序均可以                降维情况下需倒序遍历体积 完全背包:数组降维+顺序遍历 ...

  8. 动态规划之背包问题---01背包---完全背包---多重背包

    本篇博客是基于Carl大佬的刷题笔记 (代码随想录) 进行总结的 另外加入了我自己的一些整理,特此记录,以防遗忘 几种在面试中常见的背包,其关系如下: 通过这个图,可以很清晰分清这几种常见背包之间的关 ...

  9. python多重背包_【动态规划】多重背包问题

    说明 前面已经介绍完了01背包和完全背包,今天介绍最后一种背包问题--多重背包. 这个背包,听起来就很麻烦的样子.别慌,只要你理解了前面的两种背包问题,拿下多重背包简直小菜一碟. 如果没有看过前两篇0 ...

最新文章

  1. 快手宣布 7 月将取消大小周,​互联网大厂不卷了?
  2. 利用多线程解决多业务不同定时区间歇触发问题的一种方法
  3. Abiword对话框资源
  4. 5获取按钮返回值消息_大数据从入门到深入:JavaEE 之 项目实战 项目基础编码阶段(5)...
  5. 关于js的回调函数的一点看法
  6. vs code vue插件_干货分享 | Vue框架常见问题浅谈
  7. Java冒泡实现类Collections.sort()
  8. 输出源文件的标题,目前执行行的行数,编译时间
  9. VLAN aggregation(vlan聚合)配置
  10. FireFox精彩电视广告欣赏
  11. Spring| Spring中的动态代理配置(aspectj-autoproxy属性介绍)
  12. MySQL索引底层实现原理 MyISAM非聚簇索引 vs. InnoDB聚簇索引
  13. linux查看pcie网卡命令,ubuntu查看系统pci命令 (可查看网卡,声卡等设备型号)
  14. 提高信心的十个方法,助你考研坚持到底!
  15. UVA11400(dp)
  16. 12v电量显示制作方法_由分立器件设计的汽车12V电池电量指示器(上) | 电子懒人的基础硬件电路图讲解...
  17. JavaScript之参数传递
  18. 浅析移动旺旺特服号之无限扩展
  19. 学习笔记(符号扩展指令:SXTB和SXTH)
  20. 如何配置Linux系统的IP地址?

热门文章

  1. python模块里的函数及说明,Python模块 time与datetime模块的函数说明及使用实例
  2. Qt下Tcp通信的简单使用三
  3. C/C++ atof函数 - C语言零基础入门教程
  4. C语言 __LINE__ - C语言零基础入门教程
  5. BugkuCTF-Reverse题特殊的Base64
  6. ensp安装对电脑配置要求高吗_直线导轨有哪些安装方法?为什么直线导轨安装精度要求高?...
  7. python元编程运用_Python 中的元编程
  8. 专利计算机存储介质是智力活动,涉及计算机程序的发明专利申请的相关问题PPT课件.pptx...
  9. 运营商 sni 服务器,什么是服务器名称指示(SNI)
  10. pandas 每一列相加_Python3 numpy amp; pandas 学习笔记