【leetcode】01背包类型问题

【算法练习】leetcode算法题合集之动态规划背包问题篇 阅读详情

https://www.cnblogs.com/kkbill/p/12081172.html
图解请参考上述文章


#include "bag01.h"
#include <algorithm>
#include <vector>

using namespace std;



// 重点理解dp[i][w]表示什么含义
int maxValue(int w[], int v[], const int count, const int bagSize)
{
	// dp[i][w] 表示前i件物品放入容量为w的背包中可以获得的最大值
	vector<vector<int>> dp(count+1, vector<int>(bagSize+1, 0));

	for (int i = 1; i <= count; i++)
	{
		for (int k = 1; k <= bagSize; k++)
		{
			// 放i号物品。如果背包容量够,那么当前背包的价值为i物品的价值+(减去i物品控件后剩余背包能放下的最大值)
			int val = (k - w[i - 1] >= 0) ? v[i - 1] + dp[i-1][k - w[i-1]] : 0;
			
			// 不放i物品,取二位数组中上一列的值
			int val2 = dp[i - 1][k];
			dp[i][k] = std::max(val, val2);
		}
	}
	return dp[count][bagSize];
}

/*
dp = {						  // dp[i][w] 表示前i件物品放入容量为w的背包中可以获得的最大值

0  0 0  0  0   0  0  0  0     // 初始化这列全为0,方便下标计算
0  0 30 30 30  30 30 30 30    // 当只放第一种道具时,背包中最大价值的变化
0  0 30 40 40  70 70 70 70    // 放前两种道具,
0  0 30 40 50  70 80 90 90    // 放前三种
0  0 30 40 50  70 80 90 100   // 

}
*/

void testBag01()
{

	int w[] = { 2, 3, 4, 5 }; // weight
	int v[] = { 30, 40, 50, 60 }; // value

	int bagSize = 8;

	int res = maxValue(w, v, sizeof(w) / sizeof(int), bagSize);

	printf("01bag:%d", res);
}
【Ubuntu】SMBus Host controller not enabled(虚拟机进入不了图形界面) SMBus Host controller not enabled(虚拟机进入不了图形界面) 阅读详情

相关推荐

车载监控系统升级指南:如何用XS9950A替换TP9950实现高清视频解码(附配置代码)

本文提供了从TP9950升级至XS9950A车载视频解码芯片的完整实战指南。详细解析了硬件设计调整、PCB布局要点,并重点分享了通过I2C配置寄存器实现高清HDCCTV视频解码与同轴音频集成的软件驱动代码与调试技巧,助力工程师平滑完成系统升级。

weixin_29268637的博客 364

背包问题(01背包、完全背包、多重背包、混合背包、分组背包)

题目描述 小明有一个容量为V 的背包。 这天他去商场购物,商场一共有N件物品,第i件物品的体积为 wi​,价值为 vi​。 小明想知道在购买的物品总体积不超过 V的情况下所能获得的最大价值为多少,请你帮他算算。 输入描述 输入第1行包含两个正整数N,V表示商场物品的数量和小明的背包容量。 第2∼N+1行包含2个正整数w,v表示物品的体积和价值。 1≤N≤10^2, 1≤V≤10^3,1≤wi​,vi​≤10^3。 输出描述 输出一行整数表示小明所能获得的最大价值。 ...

weixin_62355410的博客 1598

EV1527 vs HS1527:固定码芯片的STM32解码避坑指南

本文深入解析EV1527与HS1527固定码芯片的技术差异,提供基于STM32的完整解码方案与稳定性优化策略。通过硬件接口配置、状态机实现及示波器诊断,解决工业遥控、安防报警等场景中的解码难题,特别针对时序差异和干扰问题给出实用解决方案。

o0p1q2r3的博客 329

动态规划:01背包问题

一、什么是01背包问题? 举个例子,你要去一个水果摊拿水果,每种水果都有对应的两种属性:占用的体积V和蕴含的价值W。而你的背包体积为N。老板说:每种水果只能拿一个!因此对于咱们肯定得想一种搭配方式使得拿的水果总体积不超过背包容积,但是价值总和达到最大! 核心思想: f[i][j]:表示所有选法集合中,只从前i个物品中选,并且总体积不大于j的选法的集合,它的值是这个集合中每一个选法的最大值。 对于01背包问题选择方法的集合可以分成2种:...

qq_42174306的博客 7万+

保姆级教程:在Windows 10/11上安装配置KNIME 5.8.0(含中文文本库更新)

本文提供在Windows 10/11系统上安装配置KNIME 5.8.0的详细指南,包括中文文本库更新和性能优化方案。从环境准备、安装流程到中文文本处理能力强化,逐步指导用户搭建高效的数据分析环境,特别针对国内网络环境和中文用户需求提供实用解决方案。

weixin_29081101的博客 669

Kimodo 入门教程(一)英伟达开源人形机器人动捕数据集训练运动学动作扩散模型

Kimodo是一个基于700小时商用光学动作捕捉数据集训练的运动学动作扩散模型,能够生成高质量的人体和机器人3D动作。该模型支持通过文本提示和多种约束条件(如关键帧、末端执行器位置等)进行控制,并提供数字人类和类人机器人两种模型变体。安装方式包括软件包安装和源代码安装两种,需要配置HuggingFace令牌以访问文本编码器。推荐使用GPU加速,最低需要17GB显存。项目提供命令行生成和交互式演示两种使用方式,演示程序支持时间轴编辑和实时3D可视化。模型分为商用友好版和受限版,其中SMPL-X版本需要额外申请

2506_90492529的博客 1927

DP模型——背包模型 01 (01背包类型)

文章目录大纲前置知识前言01背包纯板子采药装箱问题阅读理解宠物小精灵(也属于二维背包)输入格式输出格式背包问题求方案数板子状态表示数字组合状态表示属性状态计算Code具体方案简单应用开心的金明结合能量石 大纲 这个关系不是特别正确,但不妨碍我们来讲 前置知识 01背包、完全背包、分组背包、多重背包①、多重背包② 直接放以前发的 博客 了 前言 对于背包问题,本质上就是有限制的选择问题 对于给定的物品选还是不选 01背包 纯板子 采药 没啥说的 // Problem: 采药 // Contest: AcWi

INGg__的博客 1510

32位快速加法器设计

32位快速加法器设计

好好学习,天天向上 3290

【leetcode】动态规划之01背包问题

先学会手动填动态规划的表  后面的颜色块值是根据前面的颜色块值计算出来的,不懂就留言 #include&lt;iostream&gt; #include&lt;vector&gt; using namespace std; int Knapsack(vector&lt;int&gt; weights, vector&lt;int&gt; values, int capacity) { ...

AI的博客 4735

海康VisionMaster与西门子PLC1200进行S7通信

通信是连通算法平台和外部设备的重要渠道,在海康VisionMaster算法平台中既支持外部数据的读入也支持数据的写出,当通信构建起来以后既可以把软件处理结果发送给外界,又可以通过外界发送字符来触发相机拍照或者软件运行。 本文以西门子PLC1200作为外部设备为例,讲解海康VisionMaster与西门子PLC1200进行S7通信。......

haier123888的博客 1万+

5大绝招破解.NET Core本地IP访问难题——为什么你的调试总卡在localhost?

摘要: 本文详解5种本地IP访问.NET Core应用的方法,涵盖基础IP绑定(0.0.0.0)、防火墙配置、IIS Express优化、远程调试及ngrok内网穿透。关键步骤包括修改launchSettings.json、PowerShell授权端口、SSH远程调试和ngrok外网映射,并提示常见陷阱(如未绑定IP、防火墙拦截)。通过“魔法法则”组合,可实现局域网/外网高效访问,适用于开发测试场景。 (字数:148)

java专栏 955

01背包问题+例题

目录 QUESTION: 解法: 二维数组:时间复杂度和空间复杂度都是O(n*V) 一维数组:时间复杂度O(n*V),空间复杂度O(V) 例题: ac代码: QUESTION: 有n件物品(每种物品都只有一件),w[i]表示物品的重量,v[i]表示物品的价值,现有一个容量为V的背包,应该如何选物品使得书包内装的物品的value之和最大呢?   解法: 二维数组:时间复杂度和空...

Cassie_zkq的博客 6786

2025必备:C#上位机自动更新方案,支持断点续传与版本回滚(附完整源码)

摘要:工业上位机自动更新方案解析 本文针对工业现场上位机更新效率低下、风险高的问题,提出了一套完整的自动更新解决方案。该方案包含四个核心模块:版本检测(后台比对版本)、断点下载(支持网络中断续传)、安装更新(自动备份旧版本)和版本回滚(更新失败快速恢复)。通过独立更新工具与主程序解耦的设计,实现了"不影响生产+有退路"的工业级更新要求。方案基于.NET Framework开发,采用HTTP协议通信,包含详细的代码实现和工业场景适配说明,解决了U盘更新效率低、网络不稳定导致下载失败、更新后

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 956

【算法】---- 01背包问题和完全背包问题LeetCode系列问题题解

01背包问题和完全背包问题LeetCode系列问题题解

TheWhc 2326

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

【动态规划】01背包问题

【动态规划】01背包问题:DP41 【模板】01背包(开篇引导题)、416. 分割等和子集、494. 目标和、1049. 最后一块石头的重量 II

tan_run的博客 1252

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

LeetCode动态规划刷题记录(一)背包问题

最近在刷LeetCode上的动态规划题目,这里主要整理一下一些题目的做法,说到动态规划,最典型是的背包问题,让我们首先来解决背包问题。 问题背景 背包问题的背景是有一个空间有限的背包(设空间为W)和一堆物品,每个物品都有两个属性,一个是占据的空间记为w,另一个属性是物品的价值v,我们要解决的问题就是在有限的空间W内,将物品装入背包,并且使总价值尽可能的大。背包问题按大类分为三大类,一、01背包。二...

爱在梦醒时分的博客 7909

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

动态规划七——背包问题

其实,根本不需要负的下标,我们根据实际情况来看,如果这个任务的利润已经能够达标了(即使减去当前任务的利润后小于0),我们仅需在之前的任务中挑选出来的利润至少为0就可以了。背包问题其实是动态规划的核心,但是由于背包问题的种类繁多,而且背包问题的难度层次不齐,有的题目已经升级到竞赛难度了,所以我们这里只讲01背包问题和完全背包问题。给你一个“背包”,这个“背包”的体积是V,给你一堆“物品”,这些“物品”每一个都有价值w和体积v,让你选择一些放入“背包”,得到最大(最小)价值。顺序无关是组合问题的一个特点。

2301_80224556的博客 1663

背包问题(背包九讲)

背包九讲 概述 本文参考自bilibili上up主大雪菜的背包九讲专题:背包九讲专题1、背包九讲专题2 以及AcWing上的相关讲解。 背包问题代表了一类问题,即组合类的最优化问题,就是如果给我们一堆物品(元素),我们要按照某种限从中选出若干个物品(元素),求最大/最小值。 本文将将对如下的九种背包问题给出分析过程以及实现代码(提供C++和Java代码,代码链接:github) /* 1. 01背包问题 2. 完全背包问题 3. 多重背包问题 4. 混合背包问题 5. 二维费用背包问题 6. 分

weixin_42638946的博客 4934

c语言01背包代码_动态规划之背包问题系列

背包问题是一类经典的动态规划问题,它非常灵活,需要仔细琢磨体会,本文先对背包问题的几种常见类型作一个总结,然后再看看LeetCode上几个相关题目。本文首发于我的博客,传送门根据维基百科,背包问题(Knapsack problem)是一种组合优化的NP完全(NP-Complete,NPC)问题。问题可以描述为:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品...

weixin_42356331的博客 1655

背包问题详解

背包问题是一类经典的动态规划问题,它非常灵活,需要仔细琢磨体会,本文先对背包问题的几种常见类型作一个总结,再给出代码模板,然后再看看LeetCode上几个相关题目。 根据维基百科,背包问题(Knapsack problem)是一种组合优化的NP完全(NP-Complete,NPC)问题。问题可以描述为:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。NPC问题是没有多项式时间复杂度的解法的,但是利用动态规划,我们可以以伪多项式时间复杂度求解背包问题

yuyan_jia的博客 3992

01背包类算法题

关于背包问题的概念可以参考此处 leetcode 416. 分割等和子集 给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。 示例 1: 输入: [1, 5, 11, 5],输出: true 解释: 数组可以分割成 [1, 5, 5] 和 [11]. 示例 2:输入: [1, 2, 3, 5],输出: false 其实可以看成是一个01背包问题...

1460

动态规划之背包问题系列

本文讨论了几类背包问题及LeetCode相关题目,其中01背包问题和完全背包问题是最常考的,另外还需要注意一些其他变种例如恰好装满、二维背包、求方案总数等等。除了本文讨论的这些背包问题之外,还存在一些其他的变种,但只要深刻领会本文所列的背包问题的思路和状态转移方程,遇到其它的变形问题,应该也不难想出算法。

HedengyangrenC的博客 1190

【leetcode】动态规划刷题记录(三)背包问题

本文是基于leetcode动态规划例题的学习记录先贴一张背包分类图和第一题相差不大,过~public:i ++ )i ++ )j -- )

m0_73389646的博客 1982

背包问题

这篇博客记录在leetcode刷题中遇到的一些背包问题。 (1)完全背包问题 (A)https://leetcode-cn.com/problems/coin-change-2/ 518. 零钱兑换 II给定不同面额的硬币和一个总金额。写出函数来计算可以凑成总金额的硬币组合数。假设每一种面额的硬币有无限个。 示例 1: 输入: amount = 5, coins = [1, 2, 5] 输出: 4 解释: 有四种方式可以凑成总金额: 5=5 5=2+2+1 5=2+1+1+1 5=1+1+...

HackingGate的博客 385

c++ 多重背包状态转移方程_动态规划之背包问题系列

背包问题是一类经典的动态规划问题,它非常灵活,需要仔细琢磨体会,本文先对背包问题的几种常见类型作一个总结,然后再看看LeetCode上几个相关题目。本文首发于我的博客,传送门根据维基百科,背包问题(Knapsack problem)是一种组合优化的NP完全(NP-Complete,NPC)问题。问题可以描述为:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品...

weixin_39781599的博客 699

leetcode中完全背包问题集合

这两天在刷leetcode的动态规划的题目时,发现很多动态规划的题目怎么想都很难出递推公式,而看答案往往都感觉是精巧设计的,但是遇到类似的题目又不知从何下手,看了一天的博客和其他资料,发现这种类型的题目都是一类经典问题的变种:背包问题背包问题主要有3种基本类型:01背包,完全背包,多重背包问题。这里列出几个写的比较好的博客:大家可先行补充下基本知识(主要是leetcode中的题目不会让人立刻联想到...

qq_26410101的博客 2万+
上一篇: 【leetcode】392. 判断子序列(贪心,easy)
下一篇: Factorio异星工厂搭建服务器
eclipse_c
博客等级 码龄14年 28粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值