毕竟学了1天…纪念一下吧
- 首先一定要对“时间”很清晰,这里的"时间"可能并不是实际的时间,输入中一个删除操作可能不是真的删除,可以理解为操作持续时间而避免删除
- 和 C D Q CDQ CDQ 分治的区别在于 C D Q CDQ CDQ 经典问题是偏序问题,问题信息一般是计数类或者有可减性,而线段树分治处理其他类型的
- 询问的类型有两种,一种是带参数询问,即给你个 x x x 问对它进行某些操作后取得最值,还有一种是跟图/并查集相关的(可能因为我做过的题比较少),前者一般根据操作特点能做到均摊 O ( n ) O(n) O(n) 或者单次 O ( l o g n ) O(logn) O(logn) ,后者一般倾向于集中处理(因为查询和查询之间没什么区别)
- 查询和修改而言,我做过的有单点查询区间修改,单点修改区间查询两种类型,前者将修改分成 l o g n logn logn 段后插入在这几段,然后单点询问时候计算经过节点对询问影响,后者考虑修改标记永久化,只管询问的 l o g n logn logn 个节点即可
总的而言,线段树分治本身属于套路类的内容,所以本身并不怎么有技巧性