数据结构小结

并查集

普通的并查集没有什么好说的,对于遇到的题目,我们主要是要把它抽象成并查集的模型,比如萌萌哒这道题就是一个对于模型的抽象,相同的标记其实就是一个并查集。

然后想说一下并查集的两种合并,一种是路径压缩,一种是按秩合并。

按秩合并更多是对于可撤销并查集(还没打过板子)可持久化并查集

然后个人觉得有一个很重要的思想就是镜像点思想,关押罪犯和Uva 11987都是这种思想

带权并查集目前只见过搬砖(bricks)那道题。


线段树

基操没有什么好说的了

线段树主要是用来维护区间信息,是一个很好的工具。

也常常用来优化时间。(比如线段树优化dp

打标记

//为什么在Pushdown中更新下面的总值的时候为什么不把要更新的点的Pass也加进去,
//是因为在modify的时候我已经用他原来的Pass值更新过一遍了,当然不需要加进去

//即:标记下传给左右儿子时答案(比如sum)是用k的来更新,而不是k<<1和k<<1|1


加标记和乘标记

加标记:打上就行

乘标记:加标记乘上这个值,乘标记打上

pushdown:

先乘再加


加标记和赋值标记

加标记:打上就行

赋值标记:加标记去掉,打上赋值标记

pushdown:

先放赋值标记,再放加标记


翻转标记

多是在splay上面打。

但翻转标记和赋值标记加标记不冲突。


打标记基础题

打标记妙题


树链剖分

 也是一个工具,把树上的转化成序列再进行处理。


分块

(暑假并没有打分块的题。。)

个人觉得更多的是对于时间空间的一种分析能力吧!


SPLAY

只会基操

等待填坑


LCT

只会基操

等待填坑


小结:

考试当然是不可能单纯考数据结构,数据结构是用来优化的。

原文地址:https://www.cnblogs.com/yyys-/p/11322498.html