线段树总结(二) 进阶篇

看了总结(一) (假装你看了),那么对于线段树的基本操作就有个了解了,进阶篇一般是源自网络赛,多校里面难度适中,时间上应尽量控制在1个半小时内弄完。

一:优化类问题。线段树很多时候都是在推dp方程或者公式的时候发现有个以前所有状态取最大或最小,如果直接递推一遍就是O(N)的复杂度,而线段树在操作上可以把一遍操作降到logn。

http://blog.csdn.net/ied98/article/details/46860951 对于只有一个环的问题直接把环拆开询问两次就好了

http://blog.csdn.net/ied98/article/details/42802163 博客写的是LCA版 不过有必要了解一下虚树的概念

http://codeforces.com/problemset/problem/340/D 

http://codeforces.com/problemset/problem/487/B

二:离线+基本操作 or 高级操作类

http://blog.csdn.net/ied98/article/details/46861147 

http://blog.csdn.net/ied98/article/details/46859773 经典题目

http://blog.csdn.net/eod_realize/article/details/62038342 gcd相关的高级操作

http://blog.csdn.net/eod_realize/article/details/54746841 gcd相关的高级操作

http://blog.csdn.net/eod_realize/article/details/54974426 区间支持开根后改值的板子

http://blog.csdn.net/eod_realize/article/details/53045568 扫描线

http://blog.csdn.net/eod_realize/article/details/52231576 区间异或相关操作

http://blog.csdn.net/eod_realize/article/details/38562817 操作有点麻烦

很多题目不记得题号了,建议大家都写一下这些最基本的类型,并且多练扫描线和位运算相关操作之类的题目。


很多时候赛场上能做出来的就是这种难度的线段树了,而且难度应该比这高一点,本文的题目都是比较有代表性的题目,可以考虑用作模板。



你可能感兴趣的:(线段树,其它)