现在感觉没啥写的,先留着以后会填的(
一、线段树:
1、线段树维护哈希
2、线段树套DSU(其实没啥用)
二、平衡树:
三、树状数组:
1、树状数组二分(倍增),常数小,而且好写
四、分块:
五、杂项:
1、留意“取模”类的修改操作,每次取模会至少减半,哪怕看似暴力的解法也很有可能不高于nlogn
2、扫描线,将询问离线下来,扫描线消掉1side,问题简化。或者将区间[l,r]的区间定位为平面上的点(l,r),很多区间子区间询问转化为二维数点问题
3、持久化的骗局:看似持久化,但是不强制在线,那可以把操作树建出来,扫一遍欧拉序就离线完成完全持久化
3.5、持久化:路径复制(优点:可以支持完全持久化,缺点:代码较长(不好调试),常数一般较大,且一般的实现为logn),肥节点(优点:好写,常数小,复杂度一般为log(单个节点数据变化次数)(通常是loglogn),缺点:不容易支持完全持久化(如果你想写动态标号法+veb树当我没说)(但是看着麻烦也还是loglogn,理论上薄纱了路径复制))
4、启发式合并,不用多说了
5、并查集维护nxt数组(下一个合法操作位置),路径压缩,实现均摊logn
6、画(胡)变化的函数图像,找性质
标签:持久,数组,套路,线段,离线,区间,扫描线,大赏,数据结构 From: https://www.cnblogs.com/Ga1ahad-and-Scientific-Witchery/p/18013293