集训结束总结

启发式合并

如果有两个并查集块要合并,对于每个节点维护出子树的大小,然后让小的成为大的的儿子,可以把查询根节点的复杂度降低为为 O(log n),这是数据结构,所以具体我就不证明了,以知道+会用为主。

掌握程度:可做例题

路径压缩

将所有孩子的父亲直接连到祖先身上,最优情况下树可以变成菊花图,而在一般数据范围下查询连通性时时间复杂度应该是一个3~4的小常数

掌握程度:可做例题

Kruskal重构树

以权值从小到大或从大到小连出一个并查集,由于并查集主要是针对集合,所以这样做也没有太大关系。

掌握程度:看着板子才会敲

ST表

只能询问不能修改,这个算法如果想要活下来,询问的复杂度必然是极低的。 O(n log n) 的时间内足够完成 ST 表的构造。而对于查询最大值一类的问题,可以拆成几个子区间,单次查询复杂度为O(1)。在求 LCA 的问题中,可以不用树链剖分或者倍增,而是用 ST 表+欧拉序进行复杂度为O(1)的查询。

掌握程度:可做例题

zkw线段树

大概就是把传统线段树的从父节点递归到子节点,改为从子节点向父亲节点传递信息,用差分维护

掌握程度:因为没写过,所以思想都不敢确定

线段树求对于一个区间的最大子区间和:

维护每个区间的最大子区间和,从左端点出发的最大子区间,从右端点出发的最大子区间,这是很容易理解的,当两个区间合并时,我们在左区间的最大子区间,右区间的最大子区间,和两区间中间连着的部分(分别为靠近另一区间为端点的最大子区间的和),三者中取max即为该区间的最大子区间,然后以此类推往上传递

掌握程度:还没写题

历史最小值

掌握程度:不会

值域线段树+动态开点

掌握程度:只做了例题

树状数组上二分

基于树状数组每一个点都维护一个长度为2的整次幂的区间的性质,通过二分的方法确定上下界的变化情况。

掌握程度:没做过题

标记永久化

不下传修改,只需在询问的过程中计算每个遇到的结点对询问的影响,而子节点的影响在询问的时候计算。

掌握程度:没做过题

李超线段树

用标记永久化来维护线段树?

掌握程度:不会

吉司机线段树

好像是解决类似“把区间[l,r]中大于x的数改为x”之类的问题

掌握程度:不会

可持久化数据结构

保留历史版本,有些问题上省空间时间

掌握程度:只知道原理,不会写

树上背包

在树上跑dfs,效果类似于背包,有依赖的背包算是树上背包的一部分

掌握程度:会写简单的例题

树的重心

定义为树的某个节点,当去掉该节点后,树的各个连通分量中,节点数最多的连通分量其节点数达到最小值。树可能存在多个重心。

掌握程度:可做例题

树上游荡

掌握程度:不会

基环树直径

矩阵优化

掌握程度:不会

斜率优化DP

把DP方程转化成y=ax+b的形式,把要得到的东西变成b,每次看截距。维护成一个凸包的形式

掌握程度:能理解原理,但是不会自己写

线段树优化DP

掌握程度:不会

斯坦纳树

与最小生成树相似,但是允许生成新的点。

掌握程度:不会

欧拉回路

从一个点出发,可以经过连通块中的每条路径,则称为欧拉回路。

掌握程度:有道题现在还没做出来

Kruskal求最小生成树

维护无向图的最小生成森林

掌握情况:结构体堆不太会用,上回写的时候还把板子写错了

Prim算法

可能不断加边,但时刻维护,主要用于稠密图或完全图。

掌握程度:不太会自己写

次小生成树

掌握程度:不太会自己写

tarjan

掌握程度:大多数题还是得看着板子写,而且做得少

2—SAT

掌握程度:不会

cdq分治

在一般的二分的基础上,加上时间这一维

掌握程度:不会写

整体二分

首先如果只有n次询问,那么每次把询问二分,一共需要分logn次,然后每层依旧是n个,所以是nlogn,然后我们有这个想法后就考虑以这个复杂度解题,当操作中不仅有询问,还有修改时,我们把操作分开时需要判断该修改对挨着的询问有无影响,分到一起,所以后面就可以很快的速度得到每次询问的答案了。

掌握程度:不会写,思想方面也只能勉强复述(而且不保证正确性)不太理解

拓展欧拉定理

a b ≡ a b    m o d    φ ( p ) + φ ( p )    ( m o d    p ) a^b\equiv a^{b\;mod\;φ(p)+φ(p)}\;(mod\;p) ababmodφ(p)+φ(p)(modp)
掌握程度:公式会背,比较基础的也能自己A掉

Miller - Rabin算法

需要用到随机数,太玄学了(其他用到随机数的算法也不说了)

掌握程度:能听懂,没写过

莫比乌斯反演

在这里插入图片描述

公式太难写了,直接截屏

掌握程度:能看懂公式,也能看懂多数题解,但不能保证全A

圆方树

把原来的图上每个点看成圆点,然后添加些方点,删去些边,使得原来的图变成DAG

掌握程度:没写过

杜教筛+博弈+字符串部分+卷积+FFT部分一概不太会

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值