线段树

线段树学习笔记

普通线段树

线段树运用了二分的思想,将区间 \([l,r]\) 分为\([l,mid]\)\([mid+1,r]\),合并起来就是 \([l,r]\) 的信息。

zkw 线段树

动态开点线段树

可持久化线段树

线段树的合并和分裂

易错点

  1. 每一次,每一种修改都要写 pushup , 除了建树其他都要写 pushdown(如果有懒标记的话)。

  2. 空间要开的足够大,特别是可持久化线段树,线段树合并。

  3. 在动态开点线段树中,如果采用的是带引用地址的的写法,记得每当有新建节点的操作时引用变量。

  4. 递归过程中要保持答案区间 \([l,r]\) 不变,不要手滑写成 \([l,mid+1]\)\([mid+1, r]\)

posted @ 2024-01-03 17:42  louisliang  阅读(4)  评论(0编辑  收藏  举报