线段树/树状数组小结:
1、基本问题:区间更新(加、变、取反等)区间查询最值、和(可以加一些限制条件,这是树状数组做不了的),最长连续序列长度。看见多少张海报、所有海报的总面积、周长等。在只有一次查询的情况下,可以考虑前缀和。
2、基本变式:对某些求和更新操作增加条件,或者查询一些有限制的东西。可能用到二分。这个时候思维就要灵活一些,对线段树的更新、查询等操作做适当的修改。难一点可以结合许多其他的知识点。
3、树上对一颗子树的操作可用dfs序给节点编号。然后化为区间操作。
4、线段树通常是一种优化的工具,用来将O(n)的查询/修改均降低为O(logn),虽然代码量较大,但是很好用。树状数组代码量少,但是解决的问题十分有限,如果能用树状数组最好用树状数组。(简单且不容易写错)。
5、利用好题目所给条件,活跃思维,构造适当的标记方法。注意修改的条件(很多时候决定着你是否会T),pushup、pushdown的地方。