李超树学习笔记

1|0李超线段树

李超线段树一般的操作是加入一个线段求在某个点处的极值。

李超线段树每个节点有一个优势线段,表示在 mid 处取到最优的线段,相当于是标记永久化,如果不是优势线段,那么其最多在 l,r 中的一个位置比当前线段最优,因此最多递归进入一个孩子,于是复杂度是 O(logn) 的。

1|1CF932F Escape Through Leaf

题意:一棵树,每个点有点权ai,bi,从x到子树中点y的代价是ax×by,求每个点到树的叶子节点的代价的最小值。

思路:第一次知道有李超树合并。设fx表示x到叶子节点的代价的最小值,则有fx=minxancyfy+ax×by,发现这相当于是有若干一次函数,要求当x=ax时的最小值,于是考虑李超树。而一个点有多个子树是,需要将每个儿子的李超树合并起来,这一步的复杂度均摊是O(nlogn)的,于是就做完了。

1|2P2305 [NOI2014] 购票

题意:一棵树,有边权,两点的路径长度为边权之和,点 x 可以到距离不超过 lx 的点 y,代价是 pxdis(x,y)+qx,求每个点到 1 号点的最小代价。

其实还好,就是相当于维护一个区间李超树,可以根据出栈序,建立线段树套李超树就可以了。

1|3P4655 [CEOI2017] Building Bridges

题意:有 n 个柱子依次排列,要修建一些桥,如果在 i,j 之间建桥代价是 (hihj)2,同时如果一根柱子不与桥相连就需要 wi 的代价,求把第一根柱子和最后一根柱子连通的最小代价。

思路:考虑 DP,设 fi 表示连通 i 的最小代价,有 fi=minj(fj+(hihj)2+k(j,i)wk),记 w 的前缀和是 pre,那么有 fi=minj(fj+hj2prej2hihj)+hi2+prei1,于是就可以用李超树来维护最小值了。


__EOF__

本文作者Xttttr
本文链接https://www.cnblogs.com/Xttttr/p/18014462.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   Xttttr  阅读(43)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示