01背包:动态规划的Hello World
01背包问题是动态规划中最经典的入门问题。它的核心是每种物品只有一件要么选1要么不选0在背包容量有限的情况下让总价值最大。1. 问题描述有N件物品背包容量为V第i件物品重量w[i]价值v[i]每件物品只能选一次求不超过背包容量的最大价值2. 核心思路动态规划定义dp[j] 容量为j的背包能装的最大价值状态转移方程一维优化版textdp[j] max(dp[j], dp[j - w[i]] v[i])不选第i件dp[j]保持不变选第i件容量减少w[i]价值增加v[i]取两者最大值3. 关键注意事项遍历顺序必须从大到小逆序原因一维数组会覆盖历史数据逆序保证dp[j - w[i]]用的是上一轮未选当前物品的状态避免同一件物品被重复选取完全背包才正序。4. C 完整代码cpp#include iostream #include vector #include algorithm using namespace std; int main() { int N, V; cin N V; // 物品数量背包容量 vectorint w(N 1), v(N 1); for (int i 1; i N; i) { cin w[i] v[i]; } // dp[j] 表示容量为 j 的背包能装的最大价值 vectorint dp(V 1, 0); // 遍历每件物品 for (int i 1; i N; i) { // 逆序遍历容量从 V 到 w[i] for (int j V; j w[i]; j--) { dp[j] max(dp[j], dp[j - w[i]] v[i]); } } cout dp[V] endl; return 0; }5. 输入输出示例text输入 4 5 1 2 2 4 3 4 4 5 输出 8选择物品1和3重量134价值246或物品2和3重量235价值4486. 两种写法对比写法数组维度遍历顺序空间复杂度二维dpdp[N1][V1]正序O(NV)一维dp滚动数组dp[V1]容量逆序O(V)一维写法是竞赛中最常用的必须掌握。7. 常见易错点❌ 容量循环写成正序 → 变成完全背包物品可重复选❌ 内层循环从0到V→ 同样错误❌ 忘记初始化dp为 0 → 默认值要保证正确❌ 边界条件j w[i]才更新否则越界8. 扩展如果需要恰好装满初始化时cppdp[0] 0; for (int j 1; j V; j) dp[j] -INF;最后判断dp[V] 0则无法恰好装满。

相关新闻

Java 三大核心机制:抽象类、接口、内部类详解

Java 三大核心机制:抽象类、接口、内部类详解

第一部分:抽象类(Abstract Class)1.1 基本定义使用 abstract 关键字修饰的类不能被实例化(不能 new 对象)可以有构造方法(供子类调用)可以包含成员变量、常量、具体方法、抽象方法1.2 抽象方法使…

2026/8/13 8:48:54 阅读更多 →
海康威视VisionMaster试用版全功能体验指南

海康威视VisionMaster试用版全功能体验指南

1. 海康VM试用版概述 海康威视VisionMaster(简称VM)是面向机器视觉应用的一站式开发平台,其试用版为开发者提供了30天的全功能体验期。这个工业级视觉处理软件整合了定位、测量、识别、检测四大核心功能模块,支持与海康工业相机、…

2026/8/13 8:48:54 阅读更多 →
WSL2环境下NCL安装配置全攻略:气象数据可视化高效工作流搭建

WSL2环境下NCL安装配置全攻略:气象数据可视化高效工作流搭建

1. 为什么要在WSL里装NCL?一个气象人的真实选择 如果你是一个气象、海洋或者地学领域的研究生或从业者,大概率听说过NCL(NCAR Command Language)。这个由美国国家大气研究中心(NCAR)维护的脚本语言&#xf…

2026/8/13 8:48:54 阅读更多 →

最新新闻

HoRain云--NumPy 安装

HoRain云--NumPy 安装

Python 官网上的发行版是不包含 NumPy 模块的。 我们可以使用以下几种方法来安装。 使用 pip 安装 安装 NumPy 最简单的方法就是使用 pip 工具: pip3 install numpy 这里使用的是 Python3,如果你用的是 Python2 可以用 pip install numpy 安装在。 …

2026/8/13 9:46:44 阅读更多 →
构建你的专属游戏串流服务器:Sunshine完全指南

构建你的专属游戏串流服务器:Sunshine完全指南

构建你的专属游戏串流服务器:Sunshine完全指南 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 想要在任何设备上畅玩PC游戏吗?Sunshine游戏串流服务器让你轻…

2026/8/13 9:46:44 阅读更多 →
Docker(4)部署企业级前后端分离项目:Vue3 + Java 完整实战

Docker(4)部署企业级前后端分离项目:Vue3 + Java 完整实战

1. 引言 在真实的企业开发中,将前端 Vue3 项目与后端 Java 项目通过 Docker 进行容器化部署,是保障环境一致性、实现快速交付与弹性伸缩的关键环节。本文将从零开始,带你完成一套贴近企业实践的部署方案,涵盖镜像构建、容器编排、…

2026/8/13 9:46:44 阅读更多 →
Vue3可扩展AI服务Provider系统:设计原理与工程实践

Vue3可扩展AI服务Provider系统:设计原理与工程实践

1. 项目概述:为什么我们需要一个可扩展的 Provider 系统? 在构建现代前端应用,尤其是基于 Vue3 的复杂中后台系统时,我们常常会遇到一个核心挑战:如何优雅地管理那些贯穿应用生命周期的、全局性的数据和逻辑&#xff1…

2026/8/13 9:46:44 阅读更多 →
Bun vs Node.js:JavaScript运行时性能对比与一体化工具链解析

Bun vs Node.js:JavaScript运行时性能对比与一体化工具链解析

1. 从 Node.js 到 Bun:一次运行时的范式转移 如果你在过去十年里写过 JavaScript 后端服务,或者搞过前端工程化,那么 Node.js 对你来说,可能就像空气和水一样自然。从 npm install 到 node server.js ,这套基于 Ch…

2026/8/13 9:46:44 阅读更多 →
Sunshine游戏串流从零开始:打造你的专属云游戏平台完整指南

Sunshine游戏串流从零开始:打造你的专属云游戏平台完整指南

Sunshine游戏串流从零开始:打造你的专属云游戏平台完整指南 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 你是否厌倦了被订阅费用和游戏库限制所困扰?想要…

2026/8/13 9:45:42 阅读更多 →

日新闻

Visual Studio新建项目解决方案为空:系统性排查与修复指南

Visual Studio新建项目解决方案为空:系统性排查与修复指南

1. 问题现象与本质剖析如果你是一位.NET开发者,或者正准备踏入这个领域,那么Visual Studio(后面简称VS)绝对是你绕不开的伙伴。但有时候,这个伙伴会跟你开一个不大不小的玩笑:你满怀期待地点击“创建新项目…

2026/8/13 0:00:09 阅读更多 →
长春建设厅网站:普通人买房办事必看的真实指南与避坑攻略

长春建设厅网站:普通人买房办事必看的真实指南与避坑攻略

说实话,每次提起“长春建设厅网站”这几个字,我心里都挺有感触的。不是因为它有多高大上,也不是因为那里藏着什么不可告人的秘密,恰恰相反,是因为它太“接地气”了,或者说,它是咱们普通人想要在这个城市好好生活、安稳买房时,必须得翻过的一座“数据山”。很多新朋友第…

2026/8/13 0:00:09 阅读更多 →
Windows家庭版远程桌面多用户破解完整指南:RDPWrap终极解决方案

Windows家庭版远程桌面多用户破解完整指南:RDPWrap终极解决方案

Windows家庭版远程桌面多用户破解完整指南:RDPWrap终极解决方案 【免费下载链接】rdpwrap.ini RDPWrap.ini for RDP Wrapper Library by StasM 项目地址: https://gitcode.com/GitHub_Trending/rd/rdpwrap.ini 你是否曾为Windows家庭版无法支持多用户远程桌面…

2026/8/13 0:00:09 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/13 2:38:34 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/12 1:11:09 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/12 1:11:08 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/11 17:09:45 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/12 1:11:10 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/11 17:09:45 阅读更多 →