洛谷OJ: P1064 金明的预算方案(01背包问题)

这道题目涉及01背包问题,其中物品拥有主件和附件属性。每个主件可以选择0、1或2个附件。解题关键在于理解四种选择情况,并构建状态转移方程:dp[i] = max{dp[i], dp[i-w]+v, dp[i-w-w1]+v+v1, dp[i-w-w2]+v+v2, dp[i-w-w1-w2]+v+v1+v2},其中w、w1、w2分别为主件和附件的重量,v、v1、v2为对应价值,i为主件及附件总重量的限制。" 126938920,15263287,基于Springboot的酒店管理系统开发实战,"['spring boot', 'mybatis', 'vue.js', 'java开发', 'web应用']
摘要由CSDN通过智能技术生成

思路: 这是一道01背包问题, 只有选与不选的这两种情况, 但是这题物品的属性比起普通的01背包只有重量和价值以外多了主件/附件这一属性, 再看题目中"每个主件可以有0个、1个或2个附件"这一句话,一种物品的所有选择情况只有:1.只选择主件  2.选择主件+附件1  3.只选择主件和附件2  4.选择主件和所有附件, 那么我们很容易就能得到状态转移方程dp[i]= max{dp[i], dp[i-w]+v(i>=w), dp[i-w-w1]+v+v1(i>=w+w1), dp[i-w-w2]+v+v2(i>=w+w2), dp[i-w-w1-w2]+v+v1+v2(i>=w+w1+w2) }

/**
 *	题目: 洛谷OJ P1064 金明的预算方案 
 *	题型: 01背包 
 **/
#include <vector>
#include <cstdio>
#include <ios
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值