码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 背包问题总复习(纯理论)


    二刷一遍《代录》的动规问题,突然发现好像没那么晦涩难懂了,特此来梳理一下使用动规的一些思路,以及背包问题的解题步骤。以防下一次忘记~

    首先,动规解决的问题:重复子问题

    其次,动规题型:一般动规问题与背包问题

    再者,两类题型的差异:一般动规问题与背包问题差异在于遍历,一般动规问题只需要一次遍历即可,背包问题需要两层遍历:背包与物品。

    对于背包问题:分为01背包、完全背包、多重背包

    01背包:该题的关键在于,物品不能重复利用,只能使用1次。

    动规五步中,有两种遍历方法:

    一种  先遍历物品 再遍历背包

    一种  先遍历背包 再遍历物品

    在遍历背包时,如果使用二维dp,任意写法都可,无限制。

    如果使用一维滚动数组,则必须先物品后背包,且保证背包的遍历顺序是  倒序遍历!!!防止前面背包中的数被后面计算来的覆盖。

    完全背包:该题的关键在于,物品可以无限制取用。

    动规五步中,遍历方式与是否是排列还是组合有关!!!!

    装满背包:

    当求组合数,即答案与排列顺序无关时,需要外层遍历物品,内层遍历背包;

    当求排列数,即答案与排列顺序有关时,需要外层遍历背包,内层遍历物品;

    最大最小:

    求最大最小时,两种遍历方法都可以。

    在遍历背包时,一维dp中,需要保证背包是正序遍历!

    多重背包问题:问题关键在于,同一个物品的个数不唯1,可以选择有限个。

    多重背包的解题思路:将其转换为01背包问题,即将不唯一的物品拆解成1个1个即可。

    动规五步中,一维滚动数组,必须背包倒序遍历!!

    ps:

    1. 解题时,弄懂背包是什么,物品是什么;

    2. 解题时,弄懂dp的含义;

    3.解题时,弄懂背包问题是  求最大最小值 还是 求 装满问题

    装满:dp[j]+=dp[j-nums[i]];

    最大最小:dp[j]=max(dp[j],dp[j-nums[i]]+nums[i]);

  • 相关阅读:
    使用FFmpeg源码配置程序configure查看所有支持的编码器/解码器/封装/解封装及网络协议
    java.lang.RuntimeException: java.security.InvalidKeyException: Illegal key size
    Vue 简单快速入门
    P1213 [USACO1.4] [IOI1994]时钟 The Clocks
    CDH Kerberos启动后hue报错Couldn‘t renew kerberos ticket
    【Linux系统管理】05 常用命令 & 06 vim编辑器
    《LeetCode力扣练习》代码随想录——字符串(KMP算法学习补充——针对next数组构建的回退步骤进行解释)
    Virtualbox打开Mac下面的PD虚拟机
    6.3 应用动态内存补丁
    Scala第三章节
  • 原文地址:https://blog.csdn.net/qq_57328462/article/details/126211153
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号