线段树总结

来源:互联网 发布:excel日期转php日期 编辑:程序博客网 时间:2024/05/19 18:41

       学长推荐的线段树做的差不多了(代码难度原因,一直拖到现在)

       线段树的单纯题一般思维难度不是很大,但码力还是很坑的(要看维护的是啥) 

                  1、线段树最直接的就是维护区间信息,比如区间最值、区间和,但这些题都不太可能会考了、

                  2、还可以维护图的信息,比如连通性(可能套并查集),最小权值树

                  3、也可以作为一个优化,如线段树加速dp  (针对取最值的情况)

        

            判断一个问题可不可以用线段树,

                 1、先要看数据范围,10^5   60%是线段树

                 2、然后看是否有多点询问或修改、或区间操作

                 3、看看区间之间能不能合并,怎么合并。


                一般线段树都是合并比较难:

                up: 注意分类讨论的思想、缩进不要搞反

                down:注意标记下传的覆盖情况、优先级


                一些线段树的思维套路:

               1、只要上面的区间可以由且仅由子区间推出,相关性质也可以由子区间的保证来到父区间的保证。(局部凑整体)

               2、合并时可能要用到贪心的思想,父区间必须从子区间选取所有信息来保证自己的信息。(性质连续性)

               3、父区间和子区间信息规模一样(递归性)

               4、分类讨论、保证信息完整性、可并性。(完整性)

               5、有时候需要维护中间信息,用于合并(间接思维)


              一些易错点:

              1、子、父区间独立注意对应信息的位置

              2、<<| 打成<<  直接用ll=<< rr=<<|来简化

              3、信息合并时混乱

              4、数组<<2

              5、查询区间l>r崩溃

              6、忘了赋初值

              7、标记清0





原创粉丝点击