尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
信息学奥赛一本通 1272:【例9.16】分组背包
【题目链接】ybt 1272【例9.16】分组背包【题目考点】1. 动态规划分组背包【解题思路】分组背包问题特点是每组中的物品最多可以取一件1. 状态定义集合放入背包的物品方案限制物品所在分组的区间背包大小属性价值条件最大统计量价值状态定义dp[i][j]: 在前i组物品中选择物品放入大小为j的背包能获得的最大价值。2. 状态转移方程记第i组物品有m个这m个物品的编号为i1,i2,…,im。第i物品的重量是w[i]价值是c[i]。集合在前i组物品中选择物品放入大小为j的背包的所有方案分割集合第i组物品如何放入背包如果不选择第i组物品那么在剩余i-1组中选择物品放入大小为j的背包。dp[i][j] dp[i-1][j]如果选择第i组物品中的第1个该物品下标为i1。那么需要在剩余i-1组中选择物品放入大小为j-w[i1]的背包。dp[i][j] dp[i-1][j-w[i1]]c[i1]如果选择第i组物品中的第2个该物品下标为i2。那么需要在剩余i-1组中选择物品放入大小为j-w[i2]的背包。dp[i][j] dp[i-1][j-w[i2]]c[i2]…如果选择第i组物品中的第m个该物品下标为im。那么需要在剩余i-1组中选择物品放入大小为j-w[im]的背包。dp[i][j] dp[i-1][j-w[im]]c[im]一般地如果选择第i组物品中的第k个该物品下标为x。那么需要在剩余i-1组中选择物品放入大小为j-w[x]的背包。dp[i][j] dp[i-1][j-w[x]]c[x]。遍历第i组物品求选择该组中每个物品后能得到的最大价值dp[i][j]。以上所有情况求最大值。3. 复杂度分析背包容量为V物品总数量为N分组数量为T。分组背包一般解法时间复杂度O ( V N ) O(VN)O(VN)空间复杂度O ( T V ) O(TV)O(TV)滚动数组优化后空间复杂度O ( V ) O(V)O(V)【题解代码】解法1分组背包 一般解法#includebits/stdc.husingnamespacestd;#defineV205#defineN35#defineT15intdp[T][V],w[N],c[N];//dp[i][j]:在前i组物品中选择物品放入大小为j的背包能获得的最大价值。vectorintg[T];//g[i]:存储第i组物品的编号intmain(){intv,n,t,p;cinvnt;for(inti1;in;i){cinw[i]c[i]p;g[p].push_back(i);//第p组添加i}for(inti1;it;i)//遍历各组{for(intj0;jv;j){dp[i][j]dp[i-1][j];for(intk0;kg[i].size();k){intxg[i][k];if(w[x]j)dp[i][j]max(dp[i][j],dp[i-1][j-w[x]]c[x]);}}}coutdp[t][v];return0;}解法2分组背包 滚动数组优化#includebits/stdc.husingnamespacestd;#defineV205#defineN35#defineT15intdp[V],w[N],c[N];//dp[i][j]:第1维被优化掉在前i组物品中选择物品放入大小为j的背包能获得的最大价值。vectorintg[T];//g[i]:存储第i组物品的编号intmain(){intv,n,t,p;cinvnt;for(inti1;in;i){cinw[i]c[i]p;g[p].push_back(i);//第p组添加i}for(inti1;it;i)//遍历各组{for(intjv;j0;--j){for(intk0;kg[i].size();k){intxg[i][k];if(jw[x])dp[j]max(dp[j],dp[j-w[x]]c[x]);}}}coutdp[v];return0;}
RELATED

相关推荐

pokemon 性能优化终极方案:模型量化与ONNX导出,让宝可梦识别速度飞起来

pokemon 性能优化终极方案:模型量化与ONNX导出,让宝可梦识别速度飞起来

【免费下载链接】pokemon 项目地址: https://ai.gitcode.com/hf_mirrors/edc505/pokemon 点击查看 免费下载 pokemon 是一个收录 809 只宝可梦图像与分类标签的开源识别数据集,常用于训练宝可梦图像识别模型。本文面向新手,带你用模型量化与 ONNX 导出两大性能优化…

📅 2026/10/18 1:12:01
cookie、sessionStorage、localStorage 存储选型与安全边界详解

cookie、sessionStorage、localStorage 存储选型与安全边界详解

有一次帮同事排查问题,一个后台报表页面,用户前一天晚上把筛选条件、表格列配置都调好了,第二天一早打开系统,全部回到默认状态。同事第一反应是“cookie被清了”,我打开控制台看了下存储,发现他用的 sessi…

📅 2026/10/18 1:07:01
智能穿戴APP开发避坑指南:如何挑选靠谱服务商

智能穿戴APP开发避坑指南:如何挑选靠谱服务商

/* 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 1:07:01
MORE NEWS

更多资讯

📰

TCP Tahoe与Reno拥塞控制仿真实验深度解析:原理、参数与避坑指南

这个实验我前后做了两遍。第一遍照着实验指导书把仿真脚本敲完,跑出来两条曲线,乍一看都是锯齿,我还以为脚本写错了——TCP Tahoe与Reno的拥塞窗口变化看起来实在“太像了”。后来把参数逐个捋了一遍,又把trace文件里每一次丢包、…

📰

王珊《数据库系统概论》第5版答案:关系代数与范式思维训练指南

简介:本资源是《数据库系统概论(第5版)》王珊、萨师煊主编教材的配套课后习题详细答案,面向高校计算机、软件工程、信息管理等专业本科生及数据库初学者,用于巩固关系模型、关系代数、SQL语言等核心理论知识&#xff0…

📰

DeepSeek-VL 上手指南:从装好环境到跑通多图像对话

DeepSeek-VL 上手指南:从装好环境到跑通多图像对话 【免费下载链接】DeepSeek-VL DeepSeek-VL: Towards Real-World Vision-Language Understanding 项目地址: https://gitcode.com/GitHub_Trending/de/DeepSeek-VL DeepSeek-VL 是 DeepSeek 开源的视觉语言模…

📰

res-downloader 完整使用指南:从打开软件到存下加密视频只要 5 分钟

res-downloader 完整使用指南:从打开软件到存下加密视频只要 5 分钟 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader …

📰

AI正在撕掉嵌入式工具链的“价签”:从代码生成到调试的重构与实操

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

📰

AI Agent 面试题 072:ReAct架构中Thought-Action-Observation循环是如何实现的?

🔥 AI Agent 面试题 072:ReAct架构中Thought-Action-Observation循环是如何实现的?摘要:本文深入解析了「ReAct架构中Thought-Action-Observation循环是如何实现的?」这一 AI Agent 领域的核心面试题。文章从 ReAct 架…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬