当前位置: 首页 > news >正文

精简版背包问题|01背包、完全背包、多重背包

背包问题

01背包问题
有n个物品,它们有各自的体积w和价值v,现有给定容量W的背包,在总体积不超过背包承载上限的情况下,如何让背包里装入的物品具有最大的价值总和?(每个物品最多可使用一次)
w(i) 表示第i个物品的体积,v(i) 表示第i个物品的价值,
dp[i,j] : 当前背包容量为j,前i个物品最佳组合对应的价值。
不装入第i个商品,则dp[i,j] = dp[i-1, j],
装入第i个商品, 则dp[i,j] = dp[i-1, j-w(i)] + v(i),
dp[i,j] = max{dp[i-1, j], dp[i-1, j-w(i)] + v(i)} j>=w(i).

完全背包问题
有n种物品和一个容量为W的背包,第i种物品的体积是w(i),价值是v(i)。在总体积不超过背包承载上限的情况下,求解将哪些物品装入背包,可使这些物品的总价值最大。(每种物品都有无限件可用)
从装入第i种物品多少件出发,01背包只有两种情况即取0件和取1件,而这里是取0件、1件、2件…直到超过限重(k>j/w(i))
dp[i][j] : 当前背包容量为j,前i个物品最佳组合对应的价值。
#k为装入第i种物品的件数,k<=j/w(i)
dp[i][j] = max{ (dp[i-1][j- kw(i)] + kv(i) ) for every k }

多重背包问题
有n种物品和一个容量为W的背包,第i种物品的数量为s(i),体积是w(i),价值是v(i)。在总体积不超过背包承载上限的情况下,求解将哪些物品装入背包,可使这些物品的总价值最大。(每种物品的数量有限制)
从装入第i种物品多少件出发,取0件、1件、2件…s(i)件,还要满足不超过限重。
dp[i][j]: 当前背包容量为j,前i个物品最佳组合对应的价值。
#k为装入第i种物品的件数,k<= min{ s(i), j/w(i)}
dp[i][j] = max{ (dp[i-1][j-kw(i)] + kv(i)) for every k}

胡乱的参考链接-_-||
https://blog.csdn.net/woomay/article/details/133162560?spm=1001.2014.3001.5501

https://blog.csdn.net/weixin_41082481/article/details/115922389?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2defaultBlogCommendFromBaiduRate-1-115922389-blog-72900009.235%5Ev38%5Epc_relevant_default_base3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2defaultBlogCommendFromBaiduRate-1-115922389-blog-72900009.235%5Ev38%5Epc_relevant_default_base3&utm_relevant_index=2
动态规划-背包问题

https://blog.csdn.net/qq_37767455/article/details/99086678
https://zhuanlan.zhihu.com/p/93857890
https://blog.csdn.net/qq_38410730/article/details/81667885
【动态规划】01背包问题(通俗易懂,超基础讲解)

https://www.zhihu.com/question/23995189 什么是动态规划(Dynamic Programming)?动态规划的意义是什么?
https://www.cnblogs.com/mhpp/p/7700235.html 动态规划初探及什么是无后效性? (转)
https://www.zdaiot.com/DataStructureAlgorithm/40%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92%E7%90%86%E8%AE%BA%EF%BC%9A%E4%B8%80%E7%AF%87%E6%96%87%E7%AB%A0%E5%B8%A6%E4%BD%A0%E5%BD%BB%E5%BA%95%E6%90%9E%E6%87%82%E6%9C%80%E4%BC%98%E5%AD%90%E7%BB%93%E6%9E%84%E3%80%81%E6%97%A0%E5%90%8E%E6%95%88%E6%80%A7%E5%92%8C%E9%87%8D%E5%A4%8D%E5%AD%90%E9%97%AE%E9%A2%98/
0动态规划理论:一篇文章带你彻底搞懂最优子结构、无后效性和重复子问题
https://blog.csdn.net/qq_30137611/article/details/77655707 什么是无后效性?
https://juejin.cn/post/6951922898638471181
看一遍就理解:动态规划详解
https://houbb.github.io/2020/01/23/data-struct-learn-07-base-dp#%E6%9C%80%E5%B0%8F%E8%B7%AF%E5%BE%84%E4%B9%8B%E5%92%8C
五大基本算法之动态规划算法

https://zhuanlan.zhihu.com/p/368901684?utm_campaign=&utm_medium=social&utm_oi=740423421275422720&utm_psn=1689458562500431873&utm_source=zhihu
https://www.zhihu.com/question/484180920/answer/2574186966?utm_campaign=&utm_medium=social&utm_oi=740423421275422720&utm_psn=1689463449510371328&utm_source=zhihu

https://seramasumi.github.io/docs/Algorithms/mc-%E5%BE%AE%E8%AF%BE%E5%A0%82-%E8%83%8C%E5%8C%85%E9%97%AE%E9%A2%98.html

https://programmercarl.com/%E8%83%8C%E5%8C%85%E9%97%AE%E9%A2%98%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80%E5%AE%8C%E5%85%A8%E8%83%8C%E5%8C%85.html#%E7%AE%97%E6%B3%95%E5%85%AC%E5%BC%80%E8%AF%BE

https://blog.csdn.net/qq_37767455/article/details/99086678
https://blog.csdn.net/Biteht/article/details/124298926?spm=1001.2014.3001.5501
数据结构与算法—算法篇之动态规划(一)
https://blog.csdn.net/chinawangfei/article/details/123585910?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-0-123585910-blog-99086678.235v38pc_relevant_sort_base3&spm=1001.2101.3001.4242.1&utm_relevant_index=1
背包问题之0-1背包算法详解
https://blog.csdn.net/char_m/article/details/107112564?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-13-107112564-blog-99086678.235v38pc_relevant_sort_base3&spm=1001.2101.3001.4242.8&utm_relevant_index=14
https://blog.csdn.net/mu399/article/details/7722810
动态规划之01背包问题(最易理解的讲解)
https://github.com/youngyangyang04/leetcode-master/blob/master/problems/%E8%83%8C%E5%8C%85%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%8001%E8%83%8C%E5%8C%85-1.md
https://zhuanlan.zhihu.com/p/93857890
动态规划之背包问题系列
https://blog.csdn.net/woshi250hua/article/details/7636866
【DP_背包专辑】【10.14最新更新】
https://blog.csdn.net/weixin_41082481/article/details/115922389?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1-115922389-blog-72900009.235%5Ev38%5Epc_relevant_default_base3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1-115922389-blog-72900009.235%5Ev38%5Epc_relevant_default_base3&utm_relevant_index=2
动态规划-背包问题

相关文章:

精简版背包问题|01背包、完全背包、多重背包

背包问题 01背包问题 有n个物品&#xff0c;它们有各自的体积w和价值v&#xff0c;现有给定容量W的背包&#xff0c;在总体积不超过背包承载上限的情况下&#xff0c;如何让背包里装入的物品具有最大的价值总和&#xff1f;&#xff08;每个物品最多可使用一次&#xff09; w(…...

五、核支持向量机算法(NuSVC,Nu-Support Vector Classification)(有监督学习)

和支持向量分类(Nu-Support Vector Classification)&#xff0c;与 SVC 类似&#xff0c;但使用一个参数来控制支持向量的数量&#xff0c;其实现基于libsvm 一、算法思路 本质都是SVM中的一种优化&#xff0c;原理都类似&#xff0c;详细算法思路可以参考博文&#xff1a;三…...

个人废品回收小程序制作步骤详解

在当今的环保时代&#xff0c;个人废品回收小程序的发展显得尤为重要。为了满足这一需求&#xff0c;本文将详细介绍如何制作一个个人废品回收小程序。 第一步&#xff0c;进入乔拓云网后台&#xff0c;点击【轻应用小程序】进入设计小程序页面。在这个页面&#xff0c;你可以看…...

Python爬虫自动切换爬虫ip的完美方案

在进行网络爬虫时&#xff0c;经常会遇到需要切换爬虫ip的情况&#xff0c;以绕过限制或保护自己的爬虫请求。今天&#xff0c;我将为你介绍Python爬虫中自动切换爬虫ip的终极方案&#xff0c;让你的爬虫更加高效稳定。 步骤一&#xff1a;准备爬虫ip池 首先&#xff0c;你需要…...

IDEA新建.xml文件显示为普通文本

情况如下&#xff1a; 1. 在XML文件中添加*.xml的文件名模式 2. 在文本中&#xff0c;选中*.xml进行删除...

linux的三剑客

1、grep命令 grep全称是Global Regular Expression Print&#xff0c;表示全局正则表达式版本&#xff0c;它的使用权限是所有用户。它是Linux系统中一种强大的文本搜索工具&#xff0c;它能使用正则表达式搜索文本&#xff0c;并把匹配的行打印出来。 shell脚本中也经常使用g…...

微信小程序部分知识点总结【2】

微信小程序的原理是什么 微信小程序的原理是基于一种轻量级的应用程序模型&#xff0c;它允许开发者在微信客户端内部创建和运行应用程序。微信小程序采用了类似网页的技术栈&#xff0c;主要由两部分组成&#xff1a;前端和后端。 前端部分使用HTML、CSS和JavaScript等标准的…...

基于springboot+vue的云南旅游网(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…...

后缀表达式求值

后缀表达式&#xff0c;又称逆波兰式&#xff0c;指的是不包含括号&#xff0c;运算符放在两个运算对象的后面&#xff0c;所有的计算按运算符出现的顺序&#xff0c;严格从左向右进行。 运用后缀表达式进行计算的具体做法&#xff1a; 建立一个操作数栈S。然后从左到右读表达…...

基于springboot+vue的信息技术知识赛系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…...

基于YOLOv8模型的垃圾满溢检测系统(PyTorch+Pyside6+YOLOv8模型)

摘要&#xff1a;基于YOLOv8模型的垃圾满溢检测系统可用于日常生活中检测与定位车辆垃圾&#xff08;garbage&#xff09;、垃圾桶&#xff08;garbage_bin&#xff09;和垃圾满溢&#xff08;overflow&#xff09;目标&#xff0c;利用深度学习算法可实现图片、视频、摄像头等…...

面试算法14:字符串中的变位词

题目 输入字符串s1和s2&#xff0c;如何判断字符串s2中是否包含字符串s1的某个变位词&#xff1f;如果字符串s2中包含字符串s1的某个变位词&#xff0c;则字符串s1至少有一个变位词是字符串s2的子字符串。假设两个字符串中只包含英文小写字母。例如&#xff0c;字符串s1为&quo…...

中国社科院大学-美国杜兰大学金融管理硕士暨能源管理硕士项目2023年毕业典礼

中国社科院大学-美国杜兰大学金融管理硕士暨能源管理硕士项目2023年毕业典礼 2023年9月16日&#xff0c;中国社会科学院大学-美国杜兰大学金融管理硕士项目暨能源管理硕士项目2023年毕业典礼在我校望京校区成功举办。 张波副校长致辞 中国社会科学院大学副校长张波教授、杜兰大…...

蓝桥杯 题库 简单 每日十题 day10

01 最少砝码 最少砝码 问题描述 你有一架天平。现在你要设计一套砝码&#xff0c;使得利用这些砝码 可以出任意小于等于N的正整数重量。那么这套砝码最少需要包含多少个砝码&#xff1f; 注意砝码可以放在天平两边。 输入格式 输入包含一个正整数N。 输出格式 输出一个整数代表…...

聊聊并发编程——多线程之synchronized

目录 一.多线程下数据不一致问题 二.锁和synchronized 2.1 并发编程三大特性 2.2引入锁概念 三.synchronized的锁实现原理 3.1 monitorenter和monitorexit 3.2synchronized 锁的升级 3.2.1偏向锁的获取和撤销 3.2.2轻量级锁的加锁和解锁 自适应自旋锁 轻量级锁的解锁…...

CompletableFuture-通用异步编程

演示Completable接口完全可以代替Future接口&#xff1a; CompletableFuture减少阻塞和轮询&#xff0c;可以传入回调对象&#xff0c;当异步任务完成或者发生异常时&#xff0c;自动 调用回调对象的回调方法。 package com.nanjing.gulimall.zhouyimo.test;import java.util…...

Vue3 封装 element-plus 图标选择器

一、实现效果 二、实现步骤 2.1. 全局注册 icon 组件 // main.ts import App from ./App.vue; import { createApp } from vue; import * as ElementPlusIconsVue from element-plus/icons-vueconst app createApp(App);// 全局挂载和注册 element-plus 的所有 icon app.con…...

超详细C语言实现——通讯录

目录 一、介绍 二、源代码 test.c: Contact.c: Contact.h: 代码运行结果&#xff1a; 三、开始实现 1.基本框架&#xff1a; 2.添加联系人&#xff1a; 3.显示联系人信息&#xff1a; 4.删除联系人信息&#xff1a; 5.查看指定联系人信息&#xff1a; 6.修改联系人…...

zabbix监控添加监控项及其监控Mysql、nginx

本届主要介绍添加监控项和修改中文乱码&#xff0c;监控mysql&#xff0c;nginx服务 一、zabbix监控添加监控项 1、配置agent服务器 在配置文件中添加&#xff1a; UserParameterlsq_userd,free -m | grep Mem | awk { print $3 } 服务器内存使用量 UserParameterdu,…...

Docker 部署 MongoDB 服务

拉取最新版本的 MongoDB 镜像&#xff1a; $ sudo docker pull mongo:latest在本地预先创建好 db 和 configdb 目录, 用于映射 MongoDB 容器内的 /data/db 和 /data/configdb 目录。 使用以下命令来运行 MongoDB 容器: $ sudo docker run -itd --name mongo --privilegedtru…...

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…...

conda相比python好处

Conda 作为 Python 的环境和包管理工具&#xff0c;相比原生 Python 生态&#xff08;如 pip 虚拟环境&#xff09;有许多独特优势&#xff0c;尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处&#xff1a; 一、一站式环境管理&#xff1a…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件

在选煤厂、化工厂、钢铁厂等过程生产型企业&#xff0c;其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进&#xff0c;需提前预防假检、错检、漏检&#xff0c;推动智慧生产运维系统数据的流动和现场赋能应用。同时&#xff0c;…...

STM32+rt-thread判断是否联网

一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

基于Uniapp开发HarmonyOS 5.0旅游应用技术实践

一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架&#xff0c;支持"一次开发&#xff0c;多端部署"&#xff0c;可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务&#xff0c;为旅游应用带来&#xf…...

【配置 YOLOX 用于按目录分类的图片数据集】

现在的图标点选越来越多&#xff0c;如何一步解决&#xff0c;采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集&#xff08;每个目录代表一个类别&#xff0c;目录下是该类别的所有图片&#xff09;&#xff0c;你需要进行以下配置步骤&#x…...

第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词

Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵&#xff0c;其中每行&#xff0c;每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid&#xff0c;其中有多少个 3 3 的 “幻方” 子矩阵&am…...

Web中间件--tomcat学习

Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机&#xff0c;它可以执行Java字节码。Java虚拟机是Java平台的一部分&#xff0c;Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...

Bean 作用域有哪些?如何答出技术深度?

导语&#xff1a; Spring 面试绕不开 Bean 的作用域问题&#xff0c;这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开&#xff0c;结合典型面试题及实战场景&#xff0c;帮你厘清重点&#xff0c;打破模板式回答&#xff0c…...

深度学习之模型压缩三驾马车:模型剪枝、模型量化、知识蒸馏

一、引言 在深度学习中&#xff0c;我们训练出的神经网络往往非常庞大&#xff08;比如像 ResNet、YOLOv8、Vision Transformer&#xff09;&#xff0c;虽然精度很高&#xff0c;但“太重”了&#xff0c;运行起来很慢&#xff0c;占用内存大&#xff0c;不适合部署到手机、摄…...