【数据结构】李超线段树
文章平均质量分 53
cz_xuyixuan
这个作者很懒,什么都没留下…
展开
-
【BZOJ1568】【JSOI2008】Blue Mary开公司
【题目链接】点击打开链接【思路要点】用李超线段树维护一次函数单点最值,模板题。时间复杂度\(O(NLogN)\)。【代码】#include<bits/stdc++.h>using namespace std;const int MAXN = 100005;const int MAXP = 200005;const int MAXL = 15;template <type...原创 2018-05-19 10:47:27 · 212 阅读 · 0 评论 -
【BZOJ4515】【SDOI2016】游戏
【题目链接】点击打开链接【思路要点】先树链剖分,然后用李超线段树维护序列,支持一段区间对某一次函数取Min,以及查询区间最小值。由于需要区间定位,单次1号操作的时间复杂度为\(O(Log^3N)\),单次2号操作的时间复杂度为\(O(Log^2N)\)。总时间复杂度\(O(MLog^3N)\),但数据没有将该做法的复杂度卡满,实际上做到这一点也很难,因此该做法可以通过本题,甚至跑得很快。【代码】#...原创 2018-05-19 13:46:34 · 323 阅读 · 0 评论 -
【省内训练2018-10-28】排序二叉树
【思路要点】若将一个序列按照元素大小排序,那么其对应的排序二叉树即为插入时间对应的笛卡尔树,并且,被删除的元素可以视作插入时间为正无穷的元素。一个点在排序二叉树上所有的祖先即其左侧/右侧对应的所有插入时间为后/前缀最小值的点。离线操作,对权值离散化,并用线段树维护。对于一个修改 iii ,在其对应区间的左端点将对应元素的插入时间改为 iii ,在出右端点后将对应元素的插入时间改为正无穷...原创 2018-10-30 15:02:33 · 267 阅读 · 0 评论 -
【CodeChef】Count on a Treap
【题目链接】点击打开链接【思路要点】若将一个序列按照元素大小排序,那么其对应的 TreapTreapTreap 即为权值对应的笛卡尔树,并且,被删除的元素可以视作权值为 000 的元素。一个点在 TreapTreapTreap 上所有的祖先即其左侧/右侧对应的所有权值为后/前缀最大值的点。离线操作,对权值离散化,并用线段树维护。插入删除操作可以通过线段树的单调修改实现。对...原创 2018-10-30 18:20:05 · 363 阅读 · 0 评论 -
【LOJ3082】「2019 集训队互测 Day 5」小水题
【题目链接】点击打开链接【思路要点】考虑一次钻孔操作对全局水位的影响。注意到一次钻孔操作只会使得水向某一方向流动,以下认为水向右流动进行讨论。定义函数 querySum(l,r)querySum(l,r)querySum(l,r) 表示区间 [l,r][l,r][l,r] 的水位和。定义函数 queryLeft(l,r,h)queryLeft(l,r,h)queryLeft...原创 2019-05-07 16:29:56 · 984 阅读 · 0 评论