背包九讲之五(二维费用的背包问题)
http://acm.fafu.edu.cn/problem.php?id=1499
1 /* 2 二维费用的背包问题是指:对于每件物品,具有两种不同的费用, 3 选择这件物品就必须付出这两种代价,每种代价都有可付出的最大值(背包容量) 4 问怎么选择物品才能得到最大价值.费用增加了一维,那么只需要状态增加一维就可以了、 5 dp[i][j][k] 前i件物品付出两种代价为j和k的最大价值 6 dp[i][j][k] = max(dp[i-1][j][k],dp[i-1][j-a[i]][k-b[i]]); 7 根据背包的思想,可将状态压缩为二维的. 8 只不过是费用增加了一维,所以01背包,完全背包,多重完全背包的思想完全 9 可以用在这里 10 */ 11 #include <stdio.h> 12 #include <string.h> 13 int t[111],v[111],g[111]; 14 int dp[1111][111]; 15 int T,V,N; 16 inline int max(const int &a, const int &b) 17 { 18 return a < b ? b : a; 19 } 20 void zeroOnePack(int t,int v, int g) 21 { 22 int i,j; 23 for(i=T; i>=t; --i) 24 for(j=V; j>=v; --j) 25 dp[i][j] = max(dp[i][j],dp[i-t][j-v]+g); 26 } 27 int main() 28 { 29 int i; 30 while(scanf("%d%d%d",&T,&V,&N)!=EOF) 31 { 32 memset(dp,0,sizeof(dp)); 33 for(i=1; i<=N; ++i) 34 scanf("%d%d%d",&g[i],&t[i],&v[i]); 35 for(i=1; i<=N; ++i) 36 zeroOnePack(t[i],v[i],g[i]); 37 printf("%d\n",dp[T][V]); 38 } 39 40 return 0; 41 }
但是更多的时候是隐式地给出条件,比如n个物品最多取m个,那么第二维的费用便是个数。
转载于:https://www.cnblogs.com/justPassBy/p/4279674.html
背包九讲之五(二维费用的背包问题)相关推荐
- 九大背包问题专题--二维费用的背包问题
5.二维费用的背包问题 问题: 有N件物品和一个容量是V的背包,背包能承受的最大重量是M. 每件物品只能用一次,体积是vi,重量是mi,价值是wi. 求解将哪些物品装入背包,可使这些物品的总体积不超过 ...
- 第五讲 二维费用的背包问题 HD FATE(二维完全背包)
FATE Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- HDU 2159 FATE 动态规划二维费用的背包问题
http://acm.hdu.edu.cn/showproblem.php?pid=2159 题意: 给出的n , m , k ,s 分别代表还需n经验升级.还有m耐久度.下面有k组数据.最多能杀s只 ...
- xynuoj 1423 贪婪戈尔曼(二维费用的背包问题)
1423: 贪婪戈尔曼 时间限制: 1 Sec 内存限制: 128 MB 提交: 26 解决: 16 您该题的状态:已完成 [提交][状态][讨论版] 题目描述 从前有2只狗,大的叫大狗,小的叫小 ...
- 潜水员 ← 二维费用的背包问题
[题目来源] https://www.acwing.com/problem/content/1022/ [题目描述] 潜水员为了潜水要使用特殊的装备. 他有一个带2种气体的气缸:一个为氧气,一个为氮气 ...
- 背包模型dp2之二维费用背包
二维费用背包 状态表示:f[i][j][k]所有只从前i个物体中选,并且总体积不超过j,总重量不超过k的选法状态表示:f[i][j][k]所有只从前i个物体中选,并且总体积不超过j,总重量不超过k的选 ...
- 背包九讲之二:完全背包问题
文章目录 说明: 完全背包问题 题目 基本思路 一个简单有效的优化 相关题目练习 题目URL 输入格式 输出格式 数据范围 输入样例 输出样例: 题目解法 说明: 本文所讲内容摘录自崔添翼:背包九讲, ...
- 令人头疼的背包九讲(1)0/1背包问题
点击上方"Jerry的算法和NLP",选择"星标"公众号 重磅干货,第一时间送达 背包问题是一个经典的动态规划模型.它既简单形象容易理解,又在某种程 ...
- 背包九讲之四(混合三种背包问题)
1 /* 2 将01背包,完全背包,和多重完全背包问题结合起来,那么就是混合三种背的问题 3 根据三种背包的思想,那么可以得到 4 混合三种背包的问题可以这样子求解 5 for(int i=1; i& ...
最新文章
- eds800变频器故障代码_变频器常见故障代码及处理实例(经典,建议收藏)
- BeagleBone Black快速入门教程第1章嵌入式Linux之于Maker们
- Dubbo发展史谁知道?
- 沈阳工程 c语言题库,2017年沈阳航空航天大学航空航天工程学部823C语言程序设计考研仿真模拟题...
- 微软Cloud+AI本地化社区贡献指南
- 点号“·”的显示 替代 ul li 的功能
- AcWing1091.理想的正方形(单调队列DP)
- [LibTorch] Tensor 与 Mat 相互转换
- FastDFS分布式文件系统集群
- 跑毒的乌龟-0 : 随机漫步
- 【自然语言处理】【知识图谱】知识图谱表示学习(一):TransE、TransH、TransR、CTransR、TransD
- 公司专利技术交底书撰写及申请完全流程
- 金融资产管理公司 不良资产的发言人
- PNG图片怎么转成ICO
- 无线路由器连接交换机
- 字节后端开发工程师-基础架构 二面面经
- 暴走欧洲之文明的迭代
- 分频电路的实现:奇数分频、偶数分频和小数分频
- 双离合档把上按钮作用_双离合怎么换挡图解,7速双离合档位示意图
- 抖音视频链接数据分析
热门文章
- C#编译器选项(目标平台)
- 关于sqlite数据库在使用过程中应该注意以下几点
- 如何在代码中让按钮高亮_如何在C代码中插入移位寄存器
- 某计算机系大二级共有5个班,2016年计算机二级考试MS Office题库及答案
- Calendar.clear(int field)的陷阱
- OVS datapath之action分析(十九)
- Loj 6485. LJJ 学二项式定理
- 从零单排Java 8(2) —— Timestamp、String互转
- IntelliJ IDEA安装主题详细步骤
- linux中shell条件判断if中的-a到-z的意思