副本 1:树
技能
- LCA
- 维护根到点路径信息,DFS回溯
- 子树信息维护
- 虚树
- 笛卡尔树
- 树分治
- 重心分解
- DSU on tree
副本中的苟狗们
- 统计 u 到根路径上有多少个点权值小于 u ?
- 统计 u 的子树内有多少个点权值小于 u ?
- 统计距每个点最远距离,距离之和。
- 统计树中 size 为 k 的连通块个数。
- 虚树+基础树DP
- 树剖+线段树维护一次函数
- 重心分解+高维前缀和
- 带权并查集
- 笛卡尔树
CF 293E
重心分解 + BIT
副本 2: 区间信息维护
技能
- BIT
- 线段树
- ST 表
- 可持久化线段树(标记永久化思想)
- 李超树(标记永久化思想)
副本中的苟狗们
- BIT 求最长上升子序列,最长下降子序列,和最大最长上升子序列,和最大最长下降子序列。
- 线段树维护一次函数,操作:\(x:=kx+b\). 线段树维护:最大值,最小值,最小值个数,最小值位置,区间和。
- 线段树1_标记合并
- 线段树2_标记合并
- 线段树维护区间最小值个数
- 区间 k 大
- 路径上 k 大查询
副本 3: 利用单调性
技能
- 单调栈
- 单调队列维护极值
- 斜率优化
副本中的苟狗们