背包问题-01背包-P1049 装箱问题
01背包P1049 装箱问题P1049 装箱问题f[i][j]: 把前面 i 件物品放进容量为 j 的背包当中所获得的最大价值现在有 n 件物品背包容积为 V那么列出状态转移方程f[i][j] max(f[i-1][j], f[i-1][j-v[i]] w[i]) , j v[i] f[i-1][j] , j v[i] 0 , i 0 or j 0 //全局数组创建的时候默认为 0可省略状态转移方程可以用数学公式清晰地表示为f i , j { max ⁡ ( f i − 1 , j , f i − 1 , j − v i w i ) , j v i , f i − 1 , j , j ≤ v i , 0 , i 0 or j 0. f_{i,j} \begin{cases} \max\bigl(f_{i-1,j},\; f_{i-1,j-v_i} w_i\bigr), j v_i, \\[6pt] f_{i-1,j}, j \leq v_i, \\[6pt] 0, i 0 \text{ or } j 0. \end{cases}fi,j​⎩⎨⎧​max(fi−1,j​,fi−1,j−vi​​wi​),fi−1,j​,0,​jvi​,j≤vi​,i0orj0.​其中 ( f_{i,j} ) 表示考虑前 ( i ) 件物品、背包容量为 ( j ) 时的最大价值。很显然这里w是weight的缩写即重量在这个语境下把重量当作价值了。当然未来有意识区分重量和价值之间的区别就是另一种复杂场景了( v_i ) 是第 ( i ) 件物品的体积( w_i ) 是其价值。当 ( j v_i ) 时可以选择放入或不放入物品 ( i )取两者最大值。当 ( j≤ \leq≤v_i ) 时物品 ( i ) 无法放入直接继承 ( f_{i-1,j} )。边界条件( i 0 ) 或 ( j 0 ) 时最大价值为 0。其实就是对任意一个物品 i 而言要不要放进背包的问题如果不要最大价值是 f[i-1][j]否则可以创造f[i-1][j-v[i]] w[i] 的最大价值#includebits/stdc.h//万能头文件usingnamespacestd;#definemaxn20005intf[maxn][maxn],s[maxn],//时间 即空间 spacev[maxn];//价值 valueintmain(){intV,n,i,j;scanf(%d%d,V,n);for(i1;in;i){scanf(%d,v[i]);s[i]v[i];}for(i1;in;i){for(j1;jV;j){f[i][j]f[i-1][j];//如果放不下物品 iif(s[i]j){f[i][j]max(f[i-1][j-s[i]]v[i],f[i-1][j]);}}}printf(%d,V-f[n][V]);return0;}主要是把一般的二维转化成一维度的问题。我想到有2种方式1令f[j] f[n-1][j] 之前有 f[i][j] max(f[i-1][j], f[i-1][j-v[i]] w[i]) , j v[i]因为f[i][j] f[i-1][j]可以多选择一个物品时的最大价值一定不会低那么 f[j] f[n-1][j] f[i-1][j] , n i 好了原式可化为f[j] max(f[j], f[j-v[i]] w[i])还要注意一点要反着算因为这样的话在推 f[p] 的时候就有 f[p-v[i]] f[i-1][p-v[i]]算到这一层i的时候 i 0, 1, … i-1 已经跑完了不错的f[p-v[i]]刚好存储了我想要的数据要是还按照原来的顺序的话这个时候 f[p-v[i]] 就已经被更新过了是f[i][p-v[i]] 不是我们需要的错误。2用人话来说原来的状态转移方程是在考虑要不要放物品 i 的问题也就是说和上面一个状态在比较假如把第一维去掉是没有影响的i、i-1 就代表了当前状态和上一个状态数组的历史数组自然存储了下来这是某位大佬同学告诉我的偷偷告诉你他高中就学会了#includebits/stdc.h//万能头文件usingnamespacestd;#defineN1000000intv[105],s[105];//v[i]: 第i件物品的价值, s[i]第i件物品的体积//这里价值即为体积intf[N];//只需要一维数组就好了 f[j] f[n-1][j]intmain(){inti,j;intV,n;// n件物品背包容量 Vscanf(%d%d,V,n);for(i1;in;i){scanf(%d,s[i]);}for(i1;in;i){for(jV;js[i];j--)//反着来{f[j]max(f[j],f[j-s[i]]s[i]);}}printf(%d,V-f[V]);return0;}

相关新闻

如何在Vitedge中实现条件渲染:从SPA到ESR的灵活切换

如何在Vitedge中实现条件渲染:从SPA到ESR的灵活切换

如何在Vitedge中实现条件渲染:从SPA到ESR的灵活切换 【免费下载链接】vitedge Edge-side rendering and fullstack Vite framework 项目地址: https://gitcode.com/gh_mirrors/vi/vitedge Vitedge作为一款Edge-side rendering和全栈Vite框架,提供…

2026/7/14 13:03:13 阅读更多 →
终极Photoshop AI插件SD-PPP安装与使用完整指南

终极Photoshop AI插件SD-PPP安装与使用完整指南

终极Photoshop AI插件SD-PPP安装与使用完整指南 【免费下载链接】sd-ppp A Photoshop AI plugin 项目地址: https://gitcode.com/gh_mirrors/sd/sd-ppp 你是不是经常在Photoshop和AI绘画软件之间来回切换,感觉创作流程被割裂?SD-PPP这款革命性的P…

2026/7/14 13:01:12 阅读更多 →
TMC7300与STM32F410RB的有刷直流电机静音驱动方案

TMC7300与STM32F410RB的有刷直流电机静音驱动方案

1. 项目背景与核心需求 有刷直流电机作为工业自动化领域最基础的执行元件之一,其控制方案的稳定性和可靠性直接影响整个系统的性能表现。传统的有刷电机驱动方案往往面临三个典型问题:PWM噪声导致的转矩波动、低速运行时的抖动现象,以及换向过…

2026/7/14 12:59:12 阅读更多 →

最新新闻

3步掌握PS5硬件修复:NOR Modifier实战指南

3步掌握PS5硬件修复:NOR Modifier实战指南

3步掌握PS5硬件修复:NOR Modifier实战指南 【免费下载链接】PS5NorModifier The PS5 Nor Modifier is an easy to use Windows based application to rewrite your PS5 NOR file. This can be useful if your NOR is corrupt, or if you have a disc edition consol…

2026/7/14 15:26:22 阅读更多 →
如何在15分钟内完成黑苹果配置:OpCore-Simplify图形化工具终极指南

如何在15分钟内完成黑苹果配置:OpCore-Simplify图形化工具终极指南

如何在15分钟内完成黑苹果配置:OpCore-Simplify图形化工具终极指南 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为复杂的黑苹果配置…

2026/7/14 15:24:21 阅读更多 →
群晖NAS网络加速终极指南:如何免费升级到2.5G/5G/10G网络

群晖NAS网络加速终极指南:如何免费升级到2.5G/5G/10G网络

群晖NAS网络加速终极指南:如何免费升级到2.5G/5G/10G网络 【免费下载链接】r8152 Synology DSM driver for Realtek RTL8152/RTL8153/RTL8156 based adapters 项目地址: https://gitcode.com/gh_mirrors/r8/r8152 还在为群晖NAS的网络速度发愁吗?…

2026/7/14 15:22:21 阅读更多 →
MoocDownloader:3步完成中国大学MOOC课程离线下载的完整指南

MoocDownloader:3步完成中国大学MOOC课程离线下载的完整指南

MoocDownloader:3步完成中国大学MOOC课程离线下载的完整指南 【免费下载链接】MoocDownloader An MOOC downloader implemented by .NET. 一枚由 .NET 实现的 MOOC 下载器. 项目地址: https://gitcode.com/gh_mirrors/mo/MoocDownloader 对于需要反复学习MOO…

2026/7/14 15:22:21 阅读更多 →
超分辨率模型评估完全指南:PSNR、MS-SSIM、SSIM、FID指标解析 [特殊字符]

超分辨率模型评估完全指南:PSNR、MS-SSIM、SSIM、FID指标解析 [特殊字符]

超分辨率模型评估完全指南:PSNR、MS-SSIM、SSIM、FID指标解析 🚀 【免费下载链接】sesr-m7-256x256-tiles-amdnpu 项目地址: https://ai.gitcode.com/hf_mirrors/amd/sesr-m7-256x256-tiles-amdnpu 在计算机视觉和图像处理领域,超分辨…

2026/7/14 15:22:21 阅读更多 →
容器集群问题诊断从未如此简单:CPDS-Dashboard进阶使用教程

容器集群问题诊断从未如此简单:CPDS-Dashboard进阶使用教程

容器集群问题诊断从未如此简单:CPDS-Dashboard进阶使用教程 【免费下载链接】cpds-dashboard Dashboard for Container Problem Detect System 项目地址: https://gitcode.com/openeuler/cpds-dashboard 前往项目官网免费下载:https://ar.openeul…

2026/7/14 15:20:20 阅读更多 →

日新闻

AI Agent数据越界行为如何被精准溯源?——基于GDPR/CCPA双合规的5层审计框架实战指南

AI Agent数据越界行为如何被精准溯源?——基于GDPR/CCPA双合规的5层审计框架实战指南

更多请点击: https://kaifayun.com 第一章:AI Agent数据越界行为的合规性挑战与溯源必要性 AI Agent在自主执行任务过程中,可能因提示注入、上下文污染或权限配置缺陷,无意或有意访问、缓存、传输受保护数据(如PII、G…

2026/7/14 0:01:13 阅读更多 →
Perplexity vs ChatGPT vs Claude:实测127组复杂查询任务,谁才是真正可靠的“事实型AI助手”?

Perplexity vs ChatGPT vs Claude:实测127组复杂查询任务,谁才是真正可靠的“事实型AI助手”?

更多请点击: https://codechina.net 第一章:Perplexity 怎么用 Perplexity 是衡量语言模型预测能力的核心指标,数值越低表示模型对文本序列的不确定性越小、预测越精准。它本质上是交叉熵损失的指数形式,计算公式为:…

2026/7/14 0:01:13 阅读更多 →
全球首发!五一视界定制物理AI卫星ECS-1剑指万亿赛道

全球首发!五一视界定制物理AI卫星ECS-1剑指万亿赛道

五一视界发布公告,近日,公司与环天智慧科技股份有限公司(“环天智慧”)正式达成空天领域战略合作。环天智慧是国内领先、聚焦天基对地观测遥感卫星总体研制与在轨运营的商业航天企业,同时也是西南地区规模最大、具备全自主可控遥感卫星星座建…

2026/7/14 0:03:13 阅读更多 →

周新闻

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨 在一个阳光明媚的上午,互联网大厂的面试官坐在桌前,准备迎接他的面试候选人——燕双非,一个以搞笑和幽默著称的程序员。第一轮提问 面试官:燕双非,作…

2026/7/13 4:38:36 阅读更多 →
车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估在智能驾驶和车联网技术快速发展的今天,车载以太网作为新一代车载网络的核心传输技术,其物理层性能直接决定了数据传输的可靠性和稳定性。1000BASE-T1作为当前主流的…

2026/7/14 14:00:13 阅读更多 →
VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战指南嵌入式开发领域正经历一场工具链的静默革命。当传统Keil用户首次打开VSCode的扩展市场搜索EIDE时,往往会惊讶于这个看似简单的插件竟能重构十余年的开发习惯。本文将揭示如何用五个精准步骤&#xff0…

2026/7/14 7:15:24 阅读更多 →

月新闻