首页 > 其他分享 >DP 优化

DP 优化

时间:2023-07-05 23:24:34浏览次数:31  
标签:队列 j0 j1 DP 优化 单调

1. 单调队列优化 DP

1.1 简介

当一个选手比你小还比你强,你就打不过他了。这是对单调队列简单形象的概括。

单调队列在转移的过程中不断排除不可能成为决策点的元素,使每次转移寻找决策点的时间复杂度降为 \(O(1)\)。一般地,可被单调队列优化的转移式可被写为如下形式:

\[F_i=\max_{l_i\le j<i}{F_j+A_j+B_i} \]

\[(F_i=\min_{l_i\le j<i}{F_j+A_j+B_i}) \]

其中需要满足 \(l_i\) 单调不降,\(A_i\) 是只与 \(i\) 有关的变量,\(B_j\) 是只与 \(j\) 有关的变量。
不难发现单调队列要维护的是 \(F_i+A_i\),每次 \(j1\) 入队时,若满足 \(F_{j1}+A_{j1}>F_{j0}+A_{j0}\) 则将 \(j0\) 弹出,直到不满足条件或者队列为空。
此时取队头元素,它一定满足在范围内最优,将其作为决策点即可。特殊地,有时需要特判队列为空的情况。

标签:队列,j0,j1,DP,优化,单调
From: https://www.cnblogs.com/Eon-Sky/p/17529796.html

相关文章

  • memreduct内存优化工具
    适用平台:windows下载地址运行截图托盘菜单支持多种功能......
  • 优化代码,满足条件时,立即跳出循环
    在做数组作业的过程中,遇到了一个问题,题目是定义一个数组其中包含多个数字。用自己的方式最终实现,奇数放在数组的左边,偶数放在数组的右边。(可以创建其他数组,不必须在原数组中改变)。如果创建其他数组的话,解题的方法当然就很简单了,创建一个新数组,奇数从前往后插入,偶数从后往前插入,核......
  • m基于GA遗传优化算法的二维室内红外传感器部署策略matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:   2.算法涉及理论知识概要       遗传算法的原理        遗传算法GA把问题的解表示成“染色体”,在算法中也即是以二进制编码的串。并且,在执行遗传算法之前,给出一群“染色体”,也即是假设解。然后,把这些假设解置......
  • 性能优化利器 std::move/forward 实现原理
    utility包含了STL经常使用的几个模板函数的定义:std::move()用于得到一个右值引用;std::swap()使用移动语义,交换两个对象;std::forward()支持完美转发。本文分析了上述三个模板函数的实现原理。本文内容:1、std::move2、std::swap3、std::forward 1、std::move......
  • 浅谈斜率优化
    如果一个DP的转移方程可以写成\(f_i=\underset{j<i}{\min\!/\!\max}\>\{f_j+a_i\timesb_j+c_i+d_j\}+C\)的形式,那么可以运用斜率优化。不妨设转移是\(\min\),设\(g_{i,j}=f_j+a_i\timesb_j+c_i+d_j\),即\(f_i=\min\limits_{j<i}g_{i,j}\),式子可以化为\(f_j+d_j=-a_i\time......
  • DP优化
    优化DP笔记P6040「ACOI2020」课后期末考试滑溜滑溜补习班设\(f_i\)表示老师解决到第\(i\)个学生需要最少的精力,答案显然是\(f_n\)边界:对于\(i=1\),\(f_1=a_1\)对于其他的\(i\)号学生,我们假设老师是从第\(j\)位学生过来的,所以状态转移方程分为三项\(f_j\)......
  • UDP 编程不能太随意
    UDP相比TCP虽然是是无连接的,看似发送接收都很随意,但是在发送——接收过程中,仍然有些问题需要重视。在整个通讯过程中至少有两点需要注意,一方面要防止发送方的一厢情愿,另一方面是在允许的条件下,尽量保证数据的完整性。防止发送方的一厢情愿是指在发送时要确保对方有套接字可以......
  • Wordpress:安装Astra主题后,无法找到主题模板?
    在使用Wordpress安装Astra后,发现侧栏Appearance没有出现StarterTemplates,这样就无法使用很多Astra相关的免费模板,如何解决?1.点击Plugins,在搜索框输入StarterTemplates,安装后激活 2.在Appearance找到StarterTemplates,进入即可选择喜欢的模板。 ......
  • 34最优化算法
    好的,以下是常见最优化算法的公式,使用Markdown格式进行展示:1.梯度下降法(GradientDescent):参数更新公式:\(\theta^{(t+1)}=\theta^{(t)}-\alpha\nablaJ(\theta^{(t)})\)2.随机梯度下降法(StochasticGradientDescent):参数更新公式:\(\theta^{(t+1)}=\theta^{(t)}-......
  • m基于细菌觅食优化的DSR网络路由协议优化算法matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:    2.算法涉及理论知识概要        移动自组网(MobileAdHocNetwork,简称MANET)是一种无需基础设施支持的网络,它由一组移动的节点组成,这些节点可以自组织形成一个网络,实现数据的传输和共享。由于MANET是一种去中心化......