Fork me on GitHub
摘要: 可并堆 可并堆有三种常见方法:斜堆,左偏树,随机堆我们分别聊聊这三种堆吧! 斜堆 斜堆的构建其实是和二叉堆差不多的,它只是用链表来维护关系罢了,这是构建代码: struct Heap { Heap *lson, *rson; int val; Heap(int n = 0) { val = n; l 阅读全文
posted @ 2025-06-04 15:12 tony0530 阅读(16) 评论(0) 推荐(0)
摘要: 首先,请注意 \(Slope Trick\) 可不是斜率优化,是一种通过维护斜率序列的优化,它是有一定范围限制的: 连续。 是分段一次函数。 是凸函数。 每一段的斜率较小(通常为 \(O(n)\)),且均为整数。 我们发现如果此上类型的函数相加之后还是上面的一种函数。 它通常用来维护 \(DP\), 阅读全文
posted @ 2025-06-04 15:10 tony0530 阅读(36) 评论(0) 推荐(0)
摘要: 树套树 概念 顾名思义,一个树套着另一个树(bushi) eg. 维护一个线段树,并且对于每一个节用平衡树进行维护 树套树有很多种,外层的树可能有很多种,常见的是线段树与树状数组,内层的树最常见的是平衡树,也有可能是其他的 T1 : 树套树-简单版 -> 是线段树套 \(STL\) T2:树套树 - 阅读全文
posted @ 2025-06-04 15:07 tony0530 阅读(42) 评论(0) 推荐(0)
摘要: LCT学习笔记 和树链剖分比较相似,但是它的时间复杂度是 \(O(nlogn)\), 树链剖分是 \(O(nlogn^2)\) 维护一个森林,可以支持以下操作 求联通两点 \(x\), \(y\) 的路径上的所有点的某一求值(eg.\(xor\)) 将不联通的 \(x\), \(y\) 之间增加一条 阅读全文
posted @ 2025-06-04 15:00 tony0530 阅读(44) 评论(0) 推荐(0)