区间dp笔记√

区间dp笔记√

区间DP是一类在区间上进行dp的最优问题,一般是根据问题设出一个表示状态的dp,可以是二维的也可以是三维的,一般情况下为二维。

然后将问题划分成两个子问题,也就是一段区间分成左右两个区间,然后将左右两个区间合并到整个区间,或者说局部最优解合并为全局最优解,然后得解。


 区间dp就是f[i][j]表示i到j的一段区间, 然后去转移最优值的dp

一段区间表示一段状态,维护i~j的最优值来转移。

常见区间dp有:合并石子,破环成链类题目

 


 其实对于环形区间DP有一个对付环的好方法:关于N取模(特殊处理0)!

e.g.能量项链

设 f[i,j]为第i到j颗珠子合并的最大能量为max{f[i,k]+f[k+1,j]+a[i]*a[k+1]+a[j+1]};//对k+1,j,j+1等数字关于m取模

这样一来,i>j时 合并就是从i到n在回到1再到j
若使用复制一次数组的方法,时间复杂度为(2*n)^3,空间复杂度为4*n^2
环形取模方法与链式区间空间复杂度相同,且无空间浪费,时间复杂度为n^3


 求和(e.g.石子合并)

对于求和的区间DP最重要的前缀和优化( 要不然就要多花时间在求和上面 ) 这种问题我们先考虑其中最大的区间1—2*n (因为是绕成一圈所以是2*n,2*n的话可以保证在一个环上所有的区间情况)。

那么对于最大的区间1—2*n, 首先我们可以知道如果他们只有两个的话那么是可以直接合并的, 而且还有一个条件可以确定,就是当区间中只有一个元素的时候,答案是0

那么对于一个我们不知道答案的区间,计算他的答案有两个方面

①要求区间和

②要找到一种方法把自己分成两个区间

分成两个区间的时候,我们需要知道当前分成这两个区间之后的最大答案是多少。那么我们就枚举再哪里切断这个大区间让他变成两个小区间

于是就推得了状态转移方程。 
 
 

 

转载于:https://www.cnblogs.com/gc812/p/5777201.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/108904.html原文链接:https://javaforall.net

(0)
上一篇 2021年9月17日 上午9:00
下一篇 2021年9月17日 上午10:00


相关推荐

  • mac版的goland激活码【中文破解版】「建议收藏」

    (mac版的goland激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月30日
    538
  • IDEa快捷键_idea进入方法快捷键

    IDEa快捷键_idea进入方法快捷键一、IntelliJIDEA快捷键大全Win版一、Ctrl快捷键 快捷键 说明 常用 Ctrl+F 在当前文件进行文本查找 √ Ctrl+R 在当前文件进行文本替换 √ Ctrl+Z 撤销 √ Ctrl+Y

    2022年10月1日
    4
  • 博科brocade光纤交换机alias-zone的划分–>实操案例「建议收藏」

    博科brocade光纤交换机alias-zone的划分–>实操案例「建议收藏」一,图形化操作  光纤交换机作为SAN网络的重要组成部分,在日常应用中非常普遍,本次将以常用的博科交换机介绍基本的配置方法。博科300实物图:环境描述:如上图,四台服务器通过各自的双HBA卡连接至两台博科300光纤交换机,IBMV3700为双控制器,每个控制器再分别与两台光纤交换机相连。完成所有的连线及配置工作后,还需对光纤交换机作相应配置,当然不…

    2022年5月20日
    46
  • IMSI号和IMEI解释

    IMSI号和IMEI解释IMSI 号和 IMEI 解释 IMSI 号 IMSI 是国际移动用户识别码的简称 Internationa nbsp 它是在公众陆地移动电话网 PLMN 中用于唯一识别移动用户的一个号码 在 GSM 网络 这个号码通常被存放在 SIM 卡中 IMSI 共有 15 位 其结构如下 nbsp MCC MNC MSIN nbsp MCC MobileCountr

    2026年3月17日
    2
  • Fabio技术手册(1):概述和快速上手

    Fabio技术手册(1):概述和快速上手概述 Fabio 是一个 HTTP 和 TCP 反向代理 它使用来自 Consul 的数据配置自己 传统的负载均衡器和反向代理需要配置文件进行配置 配置包含代理转发到上游服务的主机名和路径 这个过程可以通过像 consul template 这样的工具来自动化 这些工具可以生成配置文件并触发重新加载 Fabio 的工作方式不同 因为它会在 Consul 存储的数据发生更改时直接更新路由表 而无需重新启动或重新加

    2026年3月18日
    2
  • iserdese2接口详解_-02-Xilinx的SerDes接口介绍【Xilinx-LVDS读写功能实现】

    iserdese2接口详解_-02-Xilinx的SerDes接口介绍【Xilinx-LVDS读写功能实现】因为摄像头输出的 LVDS 信号速率会达到 600Mbps 我们将不能够通过 FPGA 的 I O 接口直接去读取这么高速率的信号 因此 需要使用 XilinxFPGA 内的 SerDes 去实现高速数据的串并转换 熊猫君的文章 Zynq 高速串行 CMOS 接口的设计与实现 都已经说清楚了 大神 参考文档 ug953 ug471 我们为了捕获 OV7251 摄像头 LVDS 的数据信号 将会使用的以下资源 IDELAYCT

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号