摘要: 左偏树 / 可并堆 更好地维护优先队列 详解blog 支持的操作: 堆的所有操作 Marge - 维护左偏性质 更快的合并 使用 pbds 库 头文件 ext/pb_ds/priority_queue.hpp 命名空间 using namespace __gnu_pbds 声明 __gnu_pbds 阅读全文
posted @ 2024-10-11 21:48 EcapsXD 阅读(45) 评论(0) 推荐(0)
摘要: wqs二分 详解 wqs二分常用来解决如下问题: 给定若干 \(n\) 个物品,要求从中恰好选 \(m\) 次,最大化/最小化选的物品的权值和。 使用条件: 设 \(g(i)\) 选 \(i\) 个物品的最优方案,将所有 \((i,g(i))\) 的点画出来,必须组成一个凸包(上凸包、下凸包均可)。 阅读全文
posted @ 2024-10-11 21:48 EcapsXD 阅读(41) 评论(0) 推荐(0)
摘要: 补一发LCA。 LCA基本步骤 在有根树一棵树上,先将两点跳到相同的高度(deep),在一起向上跳,直到两点相遇。 倍增优化 倍增,按 \(2\) 的指数级别向上跳。 设 \(deep[u]\) 为点 \(u\) 的深度, \(fa[u][i]\) 为点 \(u\) 的 \(2^i\) 级祖先。 预 阅读全文
posted @ 2024-10-11 21:48 EcapsXD 阅读(24) 评论(0) 推荐(0)
摘要: 权值线段树 参考blog 与普通线段树的区别 普通线段树维护数列的区间信息 权值线段树维护桶的区间信息 设 \(T[x]\) 为数列 \(a\) 中 \(x\) 出现的个数。 权值线段树维护的是桶 \(T\) 。 建树/插入/查询 同普通线段树。 求整个数列的第 \(K\) 大/小值 假设 \(K= 阅读全文
posted @ 2024-10-11 21:48 EcapsXD 阅读(41) 评论(0) 推荐(0)
摘要: 重链剖分 参考blog:https://www.cnblogs.com/ivanovcraft/p/9019090.html 顾名思义,重链剖分就是将一颗有根树剖分成若干条重链,然后用数据结构维护这些重链的信息。 典型问题 对于一颗有根树有如下操作: 将树从x到y结点最短路径上所有节点的值都加上z 阅读全文
posted @ 2024-10-11 21:47 EcapsXD 阅读(47) 评论(0) 推荐(0)