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/10/18 22:20:46 阅读更多 →
海康威视VisionMaster试用版全功能体验指南

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

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

2026/10/16 23:28:38 阅读更多 →
WSL2环境下NCL安装配置全攻略:气象数据可视化高效工作流搭建

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

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

2026/10/16 18:01:03 阅读更多 →

最新新闻

JetBrains Air × Hermes Agent:ACP 连接配置与 Provider 过滤实战(TaoToken 统一 Key 接入)

JetBrains Air × Hermes Agent:ACP 连接配置与 Provider 过滤实战(TaoToken 统一 Key 接入)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 22:21:36 阅读更多 →
FRRouting Route Maps 路由策略实战:从原理到BGP选路控制

FRRouting Route Maps 路由策略实战:从原理到BGP选路控制

1. 路由策略的底层逻辑:为什么需要 Route Maps很多刚接触 FRRouting 的朋友会有一个疑问:我明明已经把 OSPF、BGP 都配通了,路由表里该有的条目也都有了,为什么还要折腾 Route Maps 这个东西?这个问题问得好&#xff0…

2026/10/18 22:21:36 阅读更多 →
免费文字转语音工具哪个好用?在线AI配音工具选择指南

免费文字转语音工具哪个好用?在线AI配音工具选择指南

做短视频、制作知识讲解内容,或者给图文作品添加旁白,经常会遇到一个问题:文字稿已经写好了,却不知道用什么工具转换成自然的语音。目前,文字转语音工具主要分为在线配音平台、视频剪辑软件和云端语音合成服务。它们的…

2026/10/18 22:21:36 阅读更多 →
查看`/proc/devices`,查看系统注册的块设备主设备号

查看`/proc/devices`,查看系统注册的块设备主设备号

cat /proc/devicesls -l /proc/devices cat /proc/devices Block devices: 259 blkext7 loop12 ramdisk31 mtdblock 179 mmcblkext:是内核扩展块设备,用来处理分区设备,现代内核用来支持超过传统限制的次设备号,一般不用手动操作,内核底层基础设施.loop:loop块设备 把普通文件…

2026/10/18 22:21:36 阅读更多 →
17节Blender萌系建模课:Q版头像+插画小屋+Lowpoly武器,新手快速入门

17节Blender萌系建模课:Q版头像+插画小屋+Lowpoly武器,新手快速入门

资源概述 这是一套围绕Blender 3D建模的系列教程,以萌系角色与场景设计为主线,通过自媒体渠道分享。资源整体为压缩包形式,内含17个视频章节以及一个名为“课程素材.exe”的配套素材包。教程从零基础宣传片引入,逐步展开各主题项…

2026/10/18 22:20:36 阅读更多 →
从调通API到构建AI Agent:Python实战物流调度助手全解析

从调通API到构建AI Agent:Python实战物流调度助手全解析

两个多月前,有位读者给我留言:“我已经能把大模型API调通了,但总觉得自己写的是聊天机器人,离AI Agent还差着十万八千里,到底差在哪?”这个问题最近被问得特别频繁,所以我决定用一整篇文章把它讲…

2026/10/18 22:20:36 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →