5.二维费用的背包问题

问题:
有N件物品和一个容量是V的背包,背包能承受的最大重量是M。

每件物品只能用一次,体积是vi,重量是mi,价值是wi。
求解将哪些物品装入背包,可使这些物品的总体积不超过背包的容量,总重量不可超过背包可承受的最大重量,且价值总和最大。
输出最大价值

输入格式
第一行有两个整数,N,V,M用空格隔开,分别表示物品种数、背包容积和背包能承受的最大重量。

接下来有N行,每行三个整数vi,mi,si,用空格隔开,分别表示第i种物品的体积、价值和数量。

输出格式
输出一个整数,表示最大价值

数据范围
0<N<=1000
0<V,M<=100
0<vi,mi<=100
0<wi<=1000

输入样例
4 5 6
1 2 3
2 4 4
3 4 5
4 5 6

输出样例
8

分析思路
时间复杂度:10^7

每个物品只能用一次->01背包问题

枚举:体积,重量->从大到小枚举

f[i][j]:表示总体积是i,重量为j的情况下,最大价值是多少
状态转移:
第一层循环:枚举每个物品(从前往后)
第二层循环:枚举体积
第三层循环:枚举重量

代码:

#include<iostream>
#include<algorithm>
using namespace std;const int N=110;
int n,v,m;
int f[N][N];int main(){cin>>n>>v>>m;for(int i=0;i<n;i++)  //从前往后枚举物品    {int a,b,c; cin>>a>>b>>c;for(int j=v;j>=a;j--) //体积从大到小枚举for(int k=m;k>=b;k--) //重量从大到小枚举 f[j][k]=max(f[j][k],f[j-a][k-b]+c); //转移 cout<<f[v][m]<<endl;return 0;
}
} 

九大背包问题专题--二维费用的背包问题相关推荐

  1. 背包九讲之五(二维费用的背包问题)

    http://acm.fafu.edu.cn/problem.php?id=1499 1 /* 2 二维费用的背包问题是指:对于每件物品,具有两种不同的费用, 3 选择这件物品就必须付出这两种代价,每 ...

  2. HDU 2159 FATE 动态规划二维费用的背包问题

    http://acm.hdu.edu.cn/showproblem.php?pid=2159 题意: 给出的n , m , k ,s 分别代表还需n经验升级.还有m耐久度.下面有k组数据.最多能杀s只 ...

  3. 第五讲 二维费用的背包问题 HD FATE(二维完全背包)

    FATE Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  4. xynuoj 1423 贪婪戈尔曼(二维费用的背包问题)

    1423: 贪婪戈尔曼 时间限制: 1 Sec  内存限制: 128 MB 提交: 26  解决: 16 您该题的状态:已完成 [提交][状态][讨论版] 题目描述 从前有2只狗,大的叫大狗,小的叫小 ...

  5. 潜水员 ← 二维费用的背包问题

    [题目来源] https://www.acwing.com/problem/content/1022/ [题目描述] 潜水员为了潜水要使用特殊的装备. 他有一个带2种气体的气缸:一个为氧气,一个为氮气 ...

  6. acwing算法题--二维费用的背包问题

    原题链接:https://www.acwing.com/problem/content/8/ #include <iostream>using namespace std;const in ...

  7. 潜水员(二维费用的背包问题)

    [题目描述] 潜水员为了潜水要使用特殊的装备.他有一个带2种气体的气缸:一个为氧气,一个为氮气.让潜水员下潜的深度需要各种的数量的氧和氮.潜水员有一定数量的气缸.每个气缸都有重量和气体容量.潜水员为了 ...

  8. 背包问题进阶优雅总结【二维费用+分组+有依赖】

    目录 作者有话说 二维费用的背包问题 状态定义及转移 物品总个数的限制 小结 分组的背包问题 状态定义及转移 小结 有依赖的背包问题(重要) 分析 最后是非常不正经的ending 作者有话说 本篇博文 ...

  9. 二维费用 hdu 2159 FATE(完全背包)HDU OJ 4501 小明系列故事——买年货【DP】

    二维费用的背包问题是指:对于每件物品,具有两种不同的费用:选择这件物品必须同时付出这两种代价:对于每种代价都有一个可付出的最大值(背包容量).问怎样选择物品可以得到最大的价值.设这两种代价分别为代价1 ...

最新文章

  1. LeetCode 215. Kth Largest Element in an Array--数字第K大的元素--最大堆或优先队列--C++,Python解法
  2. 【Android FFMPEG 开发】Android 中执行 FFMPEG 指令 ( 集成 mobile-ffmpeg 框架 | 完整代码示例 )
  3. solr导入mysql数据库
  4. DataGridView显示数据库数据(一)
  5. 深入理解java虚拟机 精华总结(面试)
  6. php 画布插入图像,javascript – 如何在PHP中将html5画布图像保存到数据库
  7. Win2008 R2 IIS7.5+PHP5(FastCGI)+MySQL5环境搭建教程
  8. 关于SharePoint中管理列表项权限
  9. pandas python groupby_python – 如何使用pandas groupby汇总多个列?
  10. python执行到input后执行下一程序_Python基础知识储备,如何开关一个while循环
  11. vue中有汉字和数字。怎么截取汉字保留数字_Excel提取中文,数字和字母,一分钟搞定!...
  12. 英文写作的25个黄金加分句型
  13. 关闭计算机端口的命令行,关闭端口命令,小编教你如何关闭电脑80端口
  14. 编程猫fiddler插件
  15. 最好用的php编程软件_php 编程软件 php编程软件有哪些
  16. JSP——JSP介绍以及运行原理
  17. 华为手机助手(PC)无法连接的通用解决方案
  18. 每一代内存的读写速度大概是多少?
  19. IDEA 里 VersionController 中的 log 中的不同颜色含义
  20. android 电源管理

热门文章

  1. python基础教程电子版-Python基础教程(第2版)PDF文档下载
  2. python中文视频教程-中谷教育python中文视频教程(全38集)
  3. 零基础学python还是c语言-学习python还是c语言?
  4. 最常用计算机语音,计算机常用词汇--语言及服务器篇
  5. window.onload()方法和window.onscroll()方法
  6. mysql change column_Modify column Vs change column
  7. vue router-view 匹配路由后,第一次可以点击,再次点击同一个路由无响应,如何处理?
  8. Koa中使用art-template模板引擎,以及如何接受post请求等
  9. 【Redis笔记】简单动态字符串(SDS)
  10. 【数据结构和算法笔记】KMP算法介绍