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

背包九讲之五(二维费用的背包问题)相关推荐

  1. 九大背包问题专题--二维费用的背包问题

    5.二维费用的背包问题 问题: 有N件物品和一个容量是V的背包,背包能承受的最大重量是M. 每件物品只能用一次,体积是vi,重量是mi,价值是wi. 求解将哪些物品装入背包,可使这些物品的总体积不超过 ...

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

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

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

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

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

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

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

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

  6. 背包模型dp2之二维费用背包

    二维费用背包 状态表示:f[i][j][k]所有只从前i个物体中选,并且总体积不超过j,总重量不超过k的选法状态表示:f[i][j][k]所有只从前i个物体中选,并且总体积不超过j,总重量不超过k的选 ...

  7. 背包九讲之二:完全背包问题

    文章目录 说明: 完全背包问题 题目 基本思路 一个简单有效的优化 相关题目练习 题目URL 输入格式 输出格式 数据范围 输入样例 输出样例: 题目解法 说明: 本文所讲内容摘录自崔添翼:背包九讲, ...

  8. 令人头疼的背包九讲(1)0/1背包问题

    点击上方"Jerry的算法和NLP",选择"星标"公众号       重磅干货,第一时间送达 背包问题是一个经典的动态规划模型.它既简单形象容易理解,又在某种程 ...

  9. 背包九讲之四(混合三种背包问题)

    1 /* 2 将01背包,完全背包,和多重完全背包问题结合起来,那么就是混合三种背的问题 3 根据三种背包的思想,那么可以得到 4 混合三种背包的问题可以这样子求解 5 for(int i=1; i& ...

最新文章

  1. eds800变频器故障代码_变频器常见故障代码及处理实例(经典,建议收藏)
  2. BeagleBone Black快速入门教程第1章嵌入式Linux之于Maker们
  3. Dubbo发展史谁知道?
  4. 沈阳工程 c语言题库,2017年沈阳航空航天大学航空航天工程学部823C语言程序设计考研仿真模拟题...
  5. 微软Cloud+AI本地化社区贡献指南
  6. 点号“·”的显示 替代 ul li 的功能
  7. AcWing1091.理想的正方形(单调队列DP)
  8. [LibTorch] Tensor 与 Mat 相互转换
  9. FastDFS分布式文件系统集群
  10. 跑毒的乌龟-0 : 随机漫步
  11. 【自然语言处理】【知识图谱】知识图谱表示学习(一):TransE、TransH、TransR、CTransR、TransD
  12. 公司专利技术交底书撰写及申请完全流程
  13. 金融资产管理公司 不良资产的发言人
  14. PNG图片怎么转成ICO
  15. 无线路由器连接交换机
  16. 字节后端开发工程师-基础架构 二面面经
  17. 暴走欧洲之文明的迭代
  18. 分频电路的实现:奇数分频、偶数分频和小数分频
  19. 双离合档把上按钮作用_双离合怎么换挡图解,7速双离合档位示意图
  20. 抖音视频链接数据分析

热门文章

  1. C#编译器选项(目标平台)
  2. 关于sqlite数据库在使用过程中应该注意以下几点
  3. 如何在代码中让按钮高亮_如何在C代码中插入移位寄存器
  4. 某计算机系大二级共有5个班,2016年计算机二级考试MS Office题库及答案
  5. Calendar.clear(int field)的陷阱
  6. OVS datapath之action分析(十九)
  7. Loj 6485. LJJ 学二项式定理
  8. 从零单排Java 8(2) —— Timestamp、String互转
  9. IntelliJ IDEA安装主题详细步骤
  10. linux中shell条件判断if中的-a到-z的意思