- 2
- 0
- 约3.98千字
- 约 26页
- 2026-03-10 发布于广西
- 举报
第19课01背包
学习目标熟悉了解01背包问题掌握01背包问题模型
知识讲授
01背包问题有N件物品和一个容量为V的背包。第i件物品的体积是v[i],价值是c[i]。求解将这些物品装入背包可以获得的最大价值是多少。例:背包容量为10,一共4件物品c[i] 2347v[i] 1359以上4件物品放入容积为10的背包的最大价值为多少?
问题分析1.针对每一个物品,我们都有两种选择:放和不放。2.我们用dp[i][j]表示前i件物品放入容积为j的背包中的最大价值。3.针对第i件物品,如果v[i]小于背包的容积有两种方案:1).放入背包,则可以得到的价值是dp[i-1][j-v[i]]+c[i]。它表示前i-1件物品放入容积为j-c[i]的背包的最大价值。(要放入第i件物品,留给前i-1件物品的空间就是j-v[i])2).不放入背包,则可以得到的最大价值是dp[i-1][j]。它表示前i-1件物品放入容积为v的背包的最大价值。(不放入第i件物品,所以留给前i-1件物品的背包空间就是j)若v[i]大于背包容积,则无法放入:dp[i][j]=dp[i-1][j]
问题分析针对可以放入的情况,我们只需要取放和不放两种方案中的最大值,即可得到dp[i][j]的值。4.我们可以得到如下的状态转移方程:dp[i][j]=max(dp[i-1][j],dp[i-1]
您可能关注的文档
- C++编程《第001课 初识C++》教学设计.docx
- C++编程《第001课 初识C++》教学课件.pptx
- C++编程《第002课 变量和数据类型(1)》教学课件.pptx
- C++编程《第002课 变量和数据类型(1)》教学设计.docx
- C++编程《第003课 变量和数据类型(2)》教学设计.docx
- C++编程《第003课 变量和数据类型(2)》教学课件.pptx
- C++编程《第004课 选择与分支(1)》教学课件.pptx
- C++编程《第004课 选择与分支(1)》教学设计.docx
- C++编程《第005课 选择与分支(2)》教学课件.pptx
- C++编程《第005课 选择与分支(2)》教学设计.docx
最近下载
- 【高清可复制】电力工程设计手册-架空输电线路设计.pdf VIP
- 22S521 预制装配式混凝土检查井.docx VIP
- 宣贯培训(2026年)《GBT 22082-2024预制混凝土衬砌管片》.pptx VIP
- 储罐维护检修制度.docx VIP
- 肾囊肿护理查房.pptx VIP
- 思特威_2026年第一季度报告.pdf VIP
- 20230913-中银国际-中银多因子选股系列(六):基于经典技术指标构建选股多因子框架.pdf VIP
- DB33T 834-2011 起重机械维护保养管理规范.docx VIP
- 消防安全评估服务投标方案.doc VIP
- 福建康鸿生物科技有限公司年产生物新医药324吨项目环评报告书.pdf VIP
原创力文档

文档评论(0)