2/9 关于费用流 dp数组的大小

news/2025/2/9 8:26:57/文章来源:https://www.cnblogs.com/smdj/p/18705733

实际上是2/8的事情了,懒鬼今天才发(

问题来源是P1004和P1006两题

费用流dp数组(假设是三维dp [ k ][ i ][ j ])
k的大小应该开到最少n+m-1

DeepSeek大导师给的说明如下:

用户可能在方格取数问题中,使用三维的dp数组,其中第一维是k,第二维是i,第三维是j。例如,dp[k][i][j],其中k的范围是0到2n-2。例如,当n=9时,k的最大是16,所以dp数组的第一维需要至少17个元素。如果用户将第一维的大小设为11*2=22,那么足够。而传纸条的问题中,当n和m是50时,k的最大是50+50-2=98,所以第一维需要99个元素。如果用户将传纸条的dp数组的第一维设为55,那么当k超过55时就会越界。这时候,将第一维的大小扩大到100就能解决问题。

在动态规划问题中,越界问题通常源于状态数组的维度不足而非数据数组的大小。以下是关键点:

  1. 状态转移的范围分析

    • 方格取数(N×N):最大步数 k = 2N-2。若 N=9,则 k_max=16。状态数组 dp[k][i][j]k 维度需至少 17。用户设置 11*2=22 足够。
    • 传纸条(N×M):最大步数 k = N+M-2。若 N=M=50,则 k_max=98。原 dp[55][55][55]k 维度仅 55,导致越界。扩大至 100 后解决。
  2. 数据数组的安全访问

    • k 合法时,ij 的取值会被约束在有效范围内(如 i ≤ N),因此 maps 数组只需开 N×NN×M 即可,无需额外扩大。

结论:确保动态规划数组的维度足够覆盖所有可能的步数,而非盲目扩大数据数组。正确计算 k 的最大值并据此设计数组大小是关键。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/881118.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

读算法简史:从美索不达米亚到人工智能时代11搜索网络

20世纪70年代小型计算机普及,苹果推出Apple和Macintosh;蒂姆伯纳斯-李提出万维网,改变了网络访问方式;亚马逊采用个性化推荐算法;谷歌开发PageRank算法,引领网络搜索和关键字广告。1. 小型计算机 1.1. 到了20世纪70年代,小型计算机已在科研院所、大学和大公司中广泛应用…

Roslyn 源代码生成器 SourceGenerator 获取代码文件的本地绝对路径

本文告诉大家如何在源代码生成器 SourceGenerator 里面获取代码文件的本地文件的绝对路径从 compilation 的 Options 拿到 SourceReferenceResolver 对象,调用其 NormalizePath 方法,传入 SyntaxTree 的 FilePath 参数即可 正常项目的 SourceReferenceResolver 都是存在的,尽…

纯 CSS 来计算当前窗口的宽高

在平时我想要计算浏览器窗口的宽度高度的时候,我们会使用 resize 事件去获取,也就是 JavaScript 的方式去获取窗口的宽度高度。 今天给大家分享一个使用纯 CSS 就能计算窗口宽度高度的方法定义自定义属性: 使用@property规则来定义--vw和--vh作为自定义的CSS属性。这些属性…

宏定义

宏定义 # 和 ## #号(将符号转为字符串) 这条定义中,定义了一个 PRINT 的宏函数预处理器遇到这样的宏,会将 #a 替换成以字符串表示的参数 a 例如:##号(连接符:将2个表达式连接到一起)预处理器会将这2条宏扩展成下面的代码我们可以看到:这2条宏定义其实就是定义了2个成员…

《Operating System Concepts》阅读笔记:p2-p8

《Operating System Concepts》学习第 2 天,p2-p8 总结,总计 7 页。 一、技术总结 1.operating system An operating system is software that manages a computer’s hardware。 2.system bus data bus, address bus, control bus 统称为 system bus。 二、英语总结(生词:…

踩坑---中断中调用系统定时器延时卡死

踩坑---中断中调用系统定时器延时卡死 背景 ​ 配置外部中断作为按键输入时,调用了系统滴答定时器为基准的延时。然后每次一按按键,单片机就卡死。一开始怀疑时中断没有配置好。反复研究中断配置是否出现错误,最后debug出来,发现卡在了// 3. 等待计数值变为0,判断CTRL标志…

windows 10 安装 wsl

在 windows 上安装 Debian 版本的 wsl以管理员身份运行 cmd,执行 wsl --help 可查看 wsl 的帮助信息。执行 wsl --list --online 查看可供安装的 wsl子系统 版本。执行 wsl --install --distribution Debian 安装 debian 版本的 wsl有了计划记得推动,不要原地踏步。

开学作业13

学习使用了vue中watch知识 可以实时更新数据 也非常好用

开学作业14

前几天也是这样通过打电话合作 前后端分着写 已经完成大部分前后端的交并 预计明天写完

做开学作业10

使用的是element ui vue2 springboot技术

手把手教你如何用飞书实现betterGI消息推送

在平时,我们一般会使用betterGI的一条龙系统来完成体力的刷取,有的人可能需要知道啥时候刷完体力方便远程关闭电脑啥的,这里给大家如何通过飞书实现BetterGI消息推送的方法 1、支持的事件提醒 事件列表 notify.test : 测试通知 domain.reward : 自动秘境奖励 domain.start :…

2025【重庆联通】活动

2025年2月8日更新 扫码显示详情及办理 扫码显示详情及办理 套餐资费和活动内容均来源于重庆联通【10010人工客服可查,中国联通app官方客服可查】 这里是下面的54个活动的办理名称,请确认【点击也可直接跳转到相应位置】1.云创安全组合包10元(CQ)-立即生效 2.云创数字人名片权…