动态规划之背包问题

这篇博客探讨了如何使用动态规划解决背包问题。通过建立状态方程B(K, W)表示在剩余空间W的情况下选择k个商品的最佳策略,并分析了选择树的不同情况,最后给出了实现背包问题的代码示例。" 134307774,10220647,多模态深度学习:Triplet、Spatial Group Enhance、NAM、S2 注意力机制解析,"['深度学习', '多模态处理', '注意力机制', '计算机视觉', '自然语言处理']
摘要由CSDN通过智能技术生成

题目描述就不用说了,这里直接给上数据:

		背包的容量 : 20
		物品的质量:2   3   4   5   9
		物品的价钱:3   4   5   8   10

其实这种问题,简单了就是每走一步都会有选和不选的两种情况,而这两种情况,必须要选择其中最好的情况:

使用B(K,W): k 个商品 ; W 剩下的空间,来表示当前的状态。
在这里插入图片描述
可以将选择树和状态方程相对应:
在这里插入图片描述
对于最终的数组都出出现以下情况:
在这里插入图片描述
所以对于背包问题有如下代码:

package com.lanqiao.study;

/**
 * 算法描述
 * 背包重量:2   3   4   5   9
 * 价值:   3   4   5   8   10
 * 背包容量: 20
 * B(K,W): k 个商品 ; W 剩下的空间
 */
public class 背包问题 {
    public static void main(String[] args) {
        //对于每一种的商品都有偷和不偷的两种情况
       
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值