数据结构
题单:数据结构精选
并查集
离散化
带权 (注意存root)
扩展域
时间观P1197
线段树和数状数组
可能的线段树操作:
一,正常维护形:
1,区间加减乘(模板1,2)
2,区间开方取模(单点暴力,暴力到了极限就不会改变~大力出奇迹?)
3,斜率形(楼房重建)
4,01操作型(xor的艺术)
5,子序列结构体up,down型
-
例题:GSS 系列 8道经典(或者6道?都是好板子,适合考前玩)
(6,8是splay,请线段树用户直接绕行)
6,区间覆盖,染色,翻转型
7,扫描线
8,维护复杂信息型,分析数学特性即可(这一部分不是不能bit,用的话就封装,不然函数重名)
方差,区间方差
二,值域线段树(直接动态开点,不然就死了~)
- 默认免回收节点合并
树上桶(差分) + 小型构造
1,线段树上二分型(套层log?假了假了)
2,传递id型(少层log?笑死没有区别好吧)
3,少量构造知识型
序列值域型
三,线段树套平衡树(写set多好)
动态区间第k大(尽限模版)
四,可持久线段树型(主席树)
静态区间第k大
可持久数组
五,思想总结
1,树上差分桶(靠merge实现差分还原,就这一句话,我想了1天)
2,区间差分相减,差分询问区间为[1,l-1][1,r]
,排序右端点,离线回答即可
- P4211 LCA: 回归lca的定义解决
3,时间线序列上线段树
-
维护多组信息就是主席树,其他就是二维普通线段树
-
一维例证:数学计算(时间轴上线段树一般取到(父)根来看单个时间点变化对顶层的影响)
树状数组比较轻量,这里只需要他的逆序对和两个模板
字典树
压维技巧(此处不赘述,最近就练了)
总结数据结构所有模版:题单版面公开题单