首页 > 其他分享 >基于 dp 凸性的优化策略(待修缮)

基于 dp 凸性的优化策略(待修缮)

时间:2024-11-11 22:45:10浏览次数:3  
标签:le 修缮 limits 凸性 斜率 mathcal 断点 dp 函数

斜率优化

\(y=kx+b\) 形式维护队列,询问不单调则二分决策点。

Slope Trick

如果决策函数满足以下条件:

  • 连续
  • 凸包,每一段斜率为整数
  • 凸包上断点之间的一次函数斜率总和为 \(\mathcal O(n)\) 级别

则称这个函数满足性质 \(T\),且如果 \(f,h\) 都满足性质 \(T\),则 \(f+h\) 也满足性质 \(T\)。

于是对于这种函数,维护凸包开头一次函数的 \(k,b\) 和后面斜率转折点,其中斜率在转折点增加多少就插入几个转折点。

于是我们可以快速维护这个决策函数:

  • \(f'=f+g\):将两函数的转折点集合合并。
  • \(f'(x)=\min\limits_{t\le x}/\max\limits_{t\le x} f_t\):令 \(k=0\) 时左右两边断点为 \(\ell,r\),维护 \(\le \ell\) 和 \(r\le\) 的断点集合 \(\mathcal L,\mathcal R\),两个操作分别对应去掉一个集合。
  • \(f'(x)=f(x+t)\):打标记,实现平移。

习题

  • CF713C
    • 严格递增转不减之后,可写出转移方程 \(f(i,j)=\min\limits_{k\le i} f(k,j-1)+|a_i-j|\),随便维护。
  • ABC217H
    • 首先此题有明显的定义域,初始为 \([0,0]\),于是将 \((0,0)\) 两边的斜率设为 \(>n\),可以保证不会影响到答案。
    • 其次有 \(f'(i)=\min\limits_{|i-j|\le 1} f(j)\) 的操作,等价于 \(\mathcal L\) 左平移 \(1\) 单位,\(\mathcal R\) 右平移 \(1\) 单位,打个标记即可实现。
    • 其余两个操作相当于加类似 \__/ 的函数,讨论一下与 \(\ell, r\) 的关系并处理断点应放入的集合就好。
  • ARC070C
    • 与上一题很类似,只不过加的是绝对值函数,其实更好处理了。
  • P3642
    • 首先考虑将每个节点的函数值包含其父边,方便处理。
    • 然后令父边权值为 \(w\),这个函数转移类似于 \(f'(x)=\min\limits_{0\le t}f(x-t)+|w-t|\),定义域的限制使转移比较复杂,根据分讨之后发现凸函数的变化如下所示:
    • 本质就是先保留 \(\mathcal R\) 的一个元素,之后并将 \(\ell,r\) 加 \(w\),使用左偏树即可。

wqs 二分

咕一会儿。

https://www.luogu.com/article/pf2lj18t

闵可夫斯基和

https://www.cnblogs.com/apjifengc/p/17041194.html

标签:le,修缮,limits,凸性,斜率,mathcal,断点,dp,函数
From: https://www.cnblogs.com/notears/p/18540734

相关文章

  • 决策单调性 dp
    重修!updon09/14/24:狗屁模拟赛督促我来更新这篇博。以下讨论最小化问题。对于\(n\timesn\)的矩阵,有:子矩阵\(A_{[i_1,i_2,..,i_k][j_1,j_2,..,j_\ell]}\)为矩阵\(A\)取出\(i_1,i_2,..,i_k\)行和\(j_1,j_2,..,j_\ell\)组成的矩阵。其中当序列\(i,j\)元素连续时......
  • 线程进阶篇4:如何用Executors工具类创建线程池-代码演示-源码分析-可行性分析,对比new T
        本篇文章主要是讲解如何使用Executors工具类创建线程池,看本篇之前建议同学们先去看看我发布的上一篇文章,即用newThreadPoolExecutor()来创建线程池,里面讲解了线程池的参数使用方法和场景,熟悉了之后再来学习这一篇会更容易理解一些!因为Executors只是一个工具类,底层......
  • 倍增$dp$
    倍增\(dp\),其实就是\(dp\)有一维为走多少步,这个东西很大,没法硬枚举,恰好要求的是最值/路径和之类的东西,可将走多少步这一维\(i\)变为走\(2^i\)。注:\(long\long\)用位运算不能用\(1<<i\),要用\(1LL<<i\)(例1,例2)倍增可用于维护树上某链最值/路径和,可用来加速dp同时,树上dp不一定由......
  • DP 技巧总结
    DP技巧总结进行了为期接近一周的DP特训,做了很多同学找的高质量题目,也学到了很多技巧。现在来把一些感觉比较有价值的技巧进行一些统一的总结。插入型DP这个东西之前应该在选拔期间的一场周测中见过,但是隔了很久,已经有所遗忘。这次题单里出现了两道类似的题目,我都不会做。其......
  • MDPI之Applied Science word 模板下载
    因为之前找过很多资料,都没有word模板下载的教程,所以在这里留个记号。官网点此一、进入如下页面 二、下拉找到Submissionchecklist在这里有 MicrosoftWord模板和 LaTeX模板(在此处单击或去官网点击即可自行下载)。......
  • 基于surging 的木舟平台如何通过Tcp或者UDP网络组件接入设备
    一、概述     上篇文章介绍了木舟通过HTTP网络组件接入设备,那么此篇文章将介绍如何利用Tcp或者UDP网络组件接入设备.     木舟(Kayak)是什么?      木舟(Kayak)是基于.NET6.0软件环境下的surging微服务引擎进行开发的,平台包含了微服务和物联网平台。支......
  • 每周算法2:数学+模拟+哈希表+栈+线性dp+贪心(简单)
    目录1.统计数字描述输入描述:输出描述: 题解2.两个数组的交集(哈希表)描述题解 3.点击消除(栈)描述输入描述:输出描述: 题解4.牛牛的快递(模拟+补充)描述输入描述:输出描述:题解 5.最小花费爬楼梯(简单线性dp)描述输入描述:输出描述:示例1题解6.数组中两......
  • 【网络】套接字编程——UDP通信
    >作者:დ旧言~>座右铭:松树千年终是朽,槿花一日自为荣。>目标:UDP网络服务器简单模拟实现。>毒鸡汤:有些事情,总是不明白,所以我不会坚持。早安!>专栏选自:网络>望小伙伴们点赞......
  • wordpress站外调用指定ID分类下的推荐内容
    在WordPress中,如果你想从站外调用指定ID分类下的推荐内容,你可以使用WordPressRESTAPI来实现。以下是一个基本的步骤指南:1.启用RESTAPI确保你的WordPress站点已经启用了RESTAPI。大多数现代WordPress版本默认启用此功能。2.获取分类ID首先,你需要知道你要调用的分类的I......
  • 【算法】状态压缩DP
    基本内容入门例子USACO06NOV]CornFieldsG-洛谷|计算机科学教育新生态题目简述:在一个\(N\timesM\)的玉米田中种玉米,有一些坏掉的土地是不能种玉米的,另外相邻的两个田也不可以种,一共有多少种种植方案(荒地也算一种),如图所示,由于相邻的土地不能种植,此时一号土地已经不能......