2023/8/5 ZR B 经典数据结构 听课总结
树状数组
单点加:前后缀和。
线段树
对于信息群 \(I\),标记群 \(D\),满足:
- 信息结合律:\(a,b,c\in I,(a+b)+c=a+(b+c)\)
- \(a\in I, b\in D,a+b\in I\)
- 标记可下传(标记可以集体下放更新到子节点的信息):\(a\in I,b,c\in D\),\((a+b)+c=a+(b+c)\)
- 标记满足结合律(标记可以和子节点的标记合并):\(a,b,c\in D,(a+b)+c=a+(b+c)\)
- 标记提前计算(在一点打上标记时,直接更新维护的信息):\(a,b\in I, c\in D\),\((a+b)+c=(a+c)+(b+c)\)
标记永久化
直接在结点上永久更新标记。
标记额外满足交换律:\(a,b\in D, a+b=b+a\)。
动态开点
维护有效部分的虚树。
扫描线
矩形面积并
维护 \(\sum_i[i=\min]\text{len}_i\)。
不交线段扫描线
维护若干线段。端点加删,维护相对关系。
变形:将其他信息抽象成二维点。
trick:
树剖,树链转区间。己酸集合(某点下的直线条数)对直线分块。
矩形内线段长度,转化为二维一次函数数点。
CDQ
多维偏序。也可以优化 DP。
带修二维偏序可以转化为带时间戳的三维偏序。CDQ。
镜中的昆虫
经典转化:颜色数维护 lst,转化为 (i,lst) 的二维数点。
涉及修改:删旧加新,维护时间戳,转化为二维数点。均摊正确。
Longest Increasing Subsequence
列出式子,把 \(\max\) 转为一维条件。
二分
线段树维护第 \(k\) 小。
\(\min(a,b)\) \(a\) 单增 \(b\) 单减的形式,找 \(a<b\) 和 \(a>b\)。
树状数组二分。
平衡数二分。
线段树合并
线段树合并,分裂。
树上路径:差分。
排序操作:均摊,维护有序段。
DP min 转移式:图像分析。
时光倒流。