adolphshi
文章17
标签11
分类4

一言

文章归档

线段树寄巧

线段树寄巧

线段树优化建图

对于一类从点 uu 到区间 [l,r][l,r] 连边,或者像是 [l,r][l,r] 向点 uu 连边的建图时,我们可以把区间变成若干个线段树上的节点,然后将链接节点与线段树上节点即可,对于上述的两种建边,需要使用两颗线段树,一颗父亲节点指向孩子节点,边权为 00 ,叫做入树;另一个孩子节点指向父亲节点,边权为 00,叫做出树.

例题- CF786B Legacy

线段树维护扫描线

这个就没有什么好说的了,在接触边界时加入线段树,在离开边界时删除在线段树中的影响即可,对于面积与周长有不同求法

eg- P1856 [IOI1998] [USACO5.5] 矩形周长Picture

线段树上二分

额,我觉得这个名字好像怪怪的。看这个名字总是不知道他要干什么。但实际上就是,到达一个线段树上的节点后,根据线段树左右儿子的信息进入不同子树统计答案。

变种挺多的,还需要牢牢掌握。

例子就是典型的查询第 kk 大 / 第 kk 小。

eg.P1486 [NOI2004] 郁闷的出纳员

线段树维护单调栈

学习这个之前建议先掌握线段树上二分

这个知识点变化较多,我们以一道典中典为例

典中典.P4198 楼房重建

我们在线段树中再设一个 tr[i] 来表示, i 管辖的这段区间单调的个数,对于两个区间,我们首先保留左区间,然后在在右子树上二分即可。

代码我还没写(

eg.P4425 [HNOI/AHOI2018] 转盘

这个题我就不在这里推式子了,自己去看题解罢。
代码好像还挺少(

本文作者:adolphshi
本文链接:http://adolphshi.github.io/2024/07/17/%E7%BA%BF%E6%AE%B5%E6%A0%91%E5%AF%84%E5%B7%A7/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可