当前位置: 首页 > news >正文

李超树 学习笔记

前情提要

主要是觉得斜率优化的时候推式子好麻烦,然后用 set 维护凸包也好麻烦(最讨厌这种 set 状物),然后就直接学李超树了,直接代替所有单调队列优化 DP

李超树,就是支持加入直线,并且查询单点(整数点)下所有直线最值的数据结构。

大神讲得好简单啊。。懂了。

李超树

李超树应用了标记永久化的 trick,就是不设懒标记,也不使用 pushup(down) 维护标记。为了保证查询返回信息的正确性,只需要在往下搜的路径上累加前面所有的标记,只要保证这个标记不漏即可,每个点维护的就是这样一个标记,代表一个直线的编号。我们只需要保证能构造一种标记方法,使得每次查询的时候结果正确即可。

接下来讲解插入直线的情况,也就是斜率优化 DP 里最常见的情况。并且维护的是最大值。

考虑以下递归函数 \(modify(l,r,f)\)\(l\)\(r\) 代表递归区间,\(f\) 代表目前下传的直线编号。我们尝试使用直线 \(f\) 来更新 \(l\)\(r\) 这个区间:

  • 首先,如果该区间的没有被任何直线标记过,直接标记上,然后返回(如果你的李超树维护的时直线,只有第一次修改才会这样)。

对于接下来的情况,我假设目前这个区间标记的线段编号为 \(g\)

  • 如果 \(f(l) \ge g(l)\)\(f(r) \ge g(r)\),那么可以直接拿 \(f\) 更新掉这个区间的标记,返回即可。

否则我们钦定 \(g(mid) \ge f(mid)\),如果不满足,直接交换 \(f\)\(g\)

  • 如果 \(f(l) > g(l)\),证明在区间 \([l,mid]\)\(f\) 可能有大于 \(g\) 的部分,但是 \([mid + 1,r]\),中不可能有,于是递归 \(modify(l,mid,f)\),保留右子树和当前节点的标记不变。

  • 如果 \(f(r) > g(r)\),证明在区间 \([mid + 1,r]\)\(f\) 可能有大于 \(g\) 的部分,但是 \([l,mid]\),中不可能有,于是递归 \(modify(mid + 1,r,f)\),保留左子树和当前节点的标记不变。

注意到上面的两个判定使用的是严格的大于号,于是最多只会递归一边,然后修改就是 \(\mathcal{O}(\log n)\) 的。

单点查询简单,直接一个点往下扫,路上会经过很多标记的线的编号,直接在这些线中找到使得查询位置值最大的那个就行。这样显然是正确的。

例题

等会更新。

http://www.jsqmd.com/news/524616/

相关文章:

  • 开源大模型工程化实践:BERT中文文本分割镜像CI/CD自动化发布流程
  • Qwen1.5-1.8B-GPTQ-Int4效果实测:金融术语理解与财报关键指标提取准确性
  • 2026靠谱充电桩系统平台优质服务商推荐榜:充电桩平台开发、充电桩平台管理系统、充电桩平台系统、充电桩收费管理系统选择指南 - 优质品牌商家
  • 探索光伏与储能电池单相离网系统:直流母线与逆变器的协同魔法
  • 折腾了一周的发票处理,写了两百行代码,最后发现有个工具十分钟就搞定了,我裂开了
  • 基于LLM的智能客服Demo开发实战:从零搭建到生产级优化
  • 在ESP8266 NodeMcu上实现LVGL图形界面的完整指南
  • 3/23
  • 保姆级教程:在Linux上用IGH EtherCAT主站搞定DC同步报文(附sync_datagram实战代码)
  • 当特斯拉遇到洒水车:盘点自动驾驶AI那些让人哭笑不得的误判案例
  • 51单片机热敏电阻测温
  • 2026华南栈道混凝土栏杆优质品牌推荐:景区生态水泥护栏/栈道水泥护栏/水泥仿木护栏/水泥栏杆/河堤水泥护栏/河堤混凝土栏杆/选择指南 - 优质品牌商家
  • ENVI 5.6.2图像融合保姆级教程:从Gram-Schmidt到NNDiffuse,手把手教你选对方法(附国产卫星数据实测)
  • Substance Painter智能材质实战:5分钟让Blender模型质感翻倍(附材质包下载)
  • 从十六进制到飞行轨迹:OpenDroneID消息包深度拆解
  • 搞电机标定的兄弟看过来,今天给大家盘一盘这个MTPA+弱磁标定数据处理脚本。别看它就是个.m文件,实战中能省下你至少三天加班时间
  • 深入解析CAN总线波特率配置:从理论到实践
  • 数据结构的线性表
  • MQTT vs Modbus:物联网网关协议选型实战指南(附RS-485接线图)
  • Qt网络开发之Qt内嵌浏览器(其二)基于WebEngine实现(QML版)
  • 钉钉小程序map组件全解析:从基础配置到高级功能(含v-bind使用技巧)
  • 如何用扩散模型实现多聚焦图像融合?FusionDiff论文实战解析(附代码)
  • 2026年 三菱PLC模块推荐榜:CCLink I/O模块专业解析,工业自动化核心组件实力厂家深度测评 - 品牌企业推荐师(官方)
  • ARM架构下Device与Normal内存类型实战解析:如何避免踩坑?
  • 普源精电DHO系列示波器选购指南:从学生党到工程师的完整对比
  • OpenClaw 自动化策略与金融工具应用指南
  • BLE协议栈LL层实战:手把手解析广播包与数据包结构(附Wireshark抓包分析)
  • 设计素材同步太慢?2026适合设计团队的 5 款企业网盘深度实测与选型指南
  • OpenAI插件实战:用Python Flask快速搭建一个天气查询插件(含完整API代码)
  • 动平衡材料实力品牌榜:平衡泥品牌/平衡泥公司/平衡泥厂家/动平衡泥/平衡泥厂商/平衡泥工厂/高比重平衡胶泥/平衡土/选择指南 - 优质品牌商家