首页 > 其他分享 >背包初始化细节

背包初始化细节

时间:2022-12-20 10:44:07浏览次数:53  
标签:初始化 背包 最大值 最小值 细节 体积 INF

背包问题初始化的细节

  1. 刚开始是最简单的01背包,这个需要我们求的是从前i个物品里面选,体积不超过j的问题。
  2. 然后就是从i个物品里面选,体积恰好是j的一个方案。
  3. 同时还有从前i个物品里面选,体积至少是的方案个数.

其实想这些问题的状态转移方程都是差不多的,唯一有区别的是初始化。

方案数初始化总结

二维情况:

  • 体积至多是j, \(f[0[i]=1\),其余的就是0,下面来思考为什么需要这样的初始化呢,这个我们就需要根据我们的一个集合定义来出发了。我们的\(f[0][i]表示的是什么都不选然后提及不超过i\)。这很显然是一种方案.
  • 体积恰好是j,\(f[0][0]=1,其余置为0\)
  • 体积至少是j,\(f[0][0]=1\),其余为0.其实我们这里求方案数的置为0就是不存在的意思,这很明显啊因为我们什么都不选这个体积怎么可能大于或者等于j呢.

一维情况:

一维其实这就是把第一位去掉就好了.

求最大值和最小值的初始化总结

二维情况:

  • 体积至多是j,\(f[i][k]=0\),注意这种情况下只会求价值的最大值.
  • 体积恰好是J:
    • 当求价值的最小值:\(f[0][0]=0\),其余是INF。
    • 当求价值的最大值:\(f[0][0]=0\),其余是-INF;
  • 体积至少是j,\(f[0][0]=0,其余是INF\).这种只会求最小值.

其实我认为最大值和最小值的初始化就是把我们合法的方案置为0,其实不合法的要看是最大值还是最小值,如果是最大值那就是-INF,最小值就是INF

一维情况:

就是去掉第一维初始化的时候.

参考下面的大佬的博客

标签:初始化,背包,最大值,最小值,细节,体积,INF
From: https://www.cnblogs.com/xyh-hnust666/p/16993706.html

相关文章

  • 应用架构之道:分离业务逻辑和技术细节
      简介: “让上帝的归上帝,凯撒的归凯撒。” 架构什么是架构?关于架构这个概念很难给出一个明确的定义,也没有一个标准的定义。硬是要给一个概述,我认为架构就是对......
  • 16位数和32位数进行运算时的细节
    1.概览16位的数据参与运算/赋值时,在数据加载/存储阶段会有movzx指令参与,在加载16位数据到32位寄存器过程中,将高32位清0如果16位数的运算结果存在隐转或者显示转换到......
  • hive初始化报错Exception in thread " main" java.lang.classNotFoundException: org.
    问题:hive初始化报错 解决方法:https://blog.csdn.net/weixin_51946865/article/details/128020686?spm=1001.2014.3001.5502原因:在我的hadoop配置文件hadoop-env.sh(......
  • 【Java】匿名类的初始化
    匿名类语法匿名类是指没有类名的内部类,必须在创建时使用new语句来声明类。其语法形式如下:new<类或接口>(){//类的主体};注意:类不仅限于抽象类匿名类的......
  • ADO.NET连接MySQL注意细节
    Nuget安装MySQL包MySql.Data.MySqlClient几个数据库对象的前缀为:MySQL比如:MySqlConnection连接字符串可以参考这里:https://www.cnblogs.com/cqpanda/p/16316311.......
  • USB总线-Linux内核USB3.0设备控制器之dwc3 gadget驱动初始化过程分析(五)
    1.概述USB设备控制器(UDC)驱动的框图如下图所示,由三部分组成。第一部分是UDC驱动核心层,在drivers/usb/gadget/udc/core.c文件中实现,该层是一个兼容层,将USBFunction驱动和具......
  • 理解01背包的一维和二维
    区分一维和二维一维和二维的区分,并不是体现在数组的维数上!!!而是体现在概念上:二维指的是下标体现了两个方面:物品的选择关于背包容量一维指下标仅代表:背包的容......
  • 关于完全背包问题的内外层循环顺序问题
    完全背包由于物品可以重复放置,我觉得就应该物品在内层循环,这样在每一个背包容量都可以考虑到这个物品。在leetcode上有些题可以把物品在外层循环进行答题,也可以ac,但是从可......
  • 01背包与完全背包问题
    01背包的两层循环外层是物品,内层是对于每一个背包容量的计算。因为01背包问题这个物品是不可以重复放置的,所以物品只循环一次,也就是在循环计算的过程中,只在一次循环中出现......
  • 成员初始化列表
    成员初始化列表的概念在类的构造函数中,通过在构造函数的括号和花括号之间使用冒号和成员变量初始化列表进行初始化,而不是在函数体对成员变量进行初始化。注意:初始化顺序......