再谈二维费用背包

简介: 再谈二维费用背包

二维费用背包呢,编者感觉是二重01背包的进化体,之前我们讨论的都是只有一个限定背包容量,比如在背包容量为V所能获得的价值,现在二维费用背包就是又加上了重量,比如背包容量为V且背包重量不能超过为M所能获得的价值。

二维费用背包问题是经典的动态规划问题之一,与普通的背包问题不同,它引入了两种不同的费用。问题的描述通常是这样的:给定一组物品,每个物品有两种费用(比如重量和体积),以及每个物品对应的价值。目标是选择一些物品放入背包中,使得在两种费用的限制下,背包中物品的总价值最大。

问题的状态转移方程通常表示为:

dp[j][k]=max(dp[j][k],dp[j-v[i]][k-m[i]]+w[i]);

其中:dp[j][k]表示在考虑体积为j重量为k的情况下的最大总价值。

请注意,以上是一般形式的二维费用背包问题。具体问题的实现可能会有一些差异,具体问题的要求需要根据实际情况进行调整。

这里用acwing上的例题:8. 二维费用的背包问题 - AcWing题库

#include<iostream>
using namespace std;
int N,V,M;
int v[1005],m[1005],w[1005],dp[1005][1005];
//dp[i][j]表示体积为i重量为j的情况下所获得最大价值
int main(){
    cin>>N>>V>>M;//N个物品V背包体积M背包所承受最大重量
    for(int i=1;i<=N;i++){
        cin>>v[i]>>m[i]>>w[i];
        for(int j=V;j>=v[i];j--){
            for(int k=M;k>=m[i];k--){//这里按照01背包一维优化分两个for来写
                dp[j][k]=max(dp[j][k],dp[j-v[i]][k-m[i]]+w[i]);//要么选第i个物品要么就不选
            }
        }
    }
    cout<<dp[V][M]<<endl;
    return 0;
}

其实二维费用背包没有什么特别说的,就是01背包的推广,所谓道生一,一生二,二生三,三生万物。既然有二维费用背包,那是不是就有三维、四维……


具体的解法都是雷同的,这里不再解释,这里二维费用背包谈的比较浅,一些地方写的不是很好,有错误的地方请大家指出,共同进步,感谢大家支持。下篇更新分组背包。

相关文章
|
传感器 编解码 数据处理
毕业设计|基于STM32单片机的水位浑浊度检测设计
毕业设计|基于STM32单片机的水位浑浊度检测设计
2031 0
postman 传入不同组参数循环调用接口
postman 传入不同组参数循环调用接口
2201 0
postman 传入不同组参数循环调用接口
|
5月前
|
关系型数据库 分布式数据库 数据库
议程抢先看|2026阿里云PolarDB开发者大会,重磅来袭
2026年1月20日,阿里云PolarDB开发者大会将于上海五角场凯悦酒店举行!聚焦数据库前沿技术,1场主论坛+3场分论坛,探讨行业趋势与创新实践。议程精彩,报名从速!
|
机器学习/深度学习 计算机视觉
RT-DETR改进策略【损失函数篇】| WIoU v3:针对低质量样本的边界框回归损失函数
RT-DETR改进策略【损失函数篇】| WIoU v3:针对低质量样本的边界框回归损失函数
799 14
|
9月前
|
存储 人工智能 NoSQL
阿里云表格存储 Tablestore 全面升级 AI 能力,存储成本直降 30%
近日,阿里云表格存储 Tablestore 宣布全面升级 AI 场景支持能力,正式推出 AI Agent 记忆存储功能,在保障高性能与高可用的同时,整体存储成本降低 30%,标志着 Tablestore 在构建 AI 数据处理和存储的技术内核能力上,迈出关键一步。
730 133
|
存储 人工智能 资源调度
Keyspace北京峰会:邀您共建Valkey开源社区
Keyspace 北京峰会是开发者、SRE 和 DevOps 专家齐聚一堂,分享 Valkey 技术、最佳实践和新用途的盛会。您将在为期一天的活动中与项目维护人员、社区爱好者和思想领袖见面交流。
390 0
|
存储 人工智能 NoSQL
Tablestore深度解析:面向AI场景的结构化数据存储最佳实践
《Tablestore深度解析:面向AI场景的结构化数据存储最佳实践》由阿里云专家团队分享,涵盖Tablestore十年发展历程、AI时代多模态数据存储需求、VCU模式优化、向量检索发布及客户最佳实践等内容。Tablestore支持大规模在线数据存储,提供高性价比、高性能和高可用性,特别针对AI场景进行优化,满足结构化与非结构化数据的统一存储和高效检索需求。通过多元化索引和Serverless弹性VCU模式,助力企业实现低成本、灵活扩展的数据管理方案。
870 12
|
负载均衡 网络协议 算法
|
缓存 NoSQL Serverless
云数据库Tair:从稳定低延时缓存到 Serverless KV
本次分享聚焦云数据库Tair的使用,涵盖三部分内容:1) Tair概览,介绍其作为稳定低延时缓存及KV数据库服务的特点和优势;2) 稳定低延迟缓存技术,探讨如何通过多线程处理、优化内核等手段提升性能与稳定性;3) 从缓存到Serverless KV的演进,特别是在AI大模型时代,Tair如何助力在线服务和推理缓存加速。Tair在兼容性、性能优化、扩缩容及AI推理加速方面表现出色,满足不同场景需求。