看了总结(一) (假装你看了),那么对于线段树的基本操作就有个了解了,进阶篇一般是源自网络赛,多校里面难度适中,时间上应尽量控制在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 操作有点麻烦
很多题目不记得题号了,建议大家都写一下这些最基本的类型,并且多练扫描线和位运算相关操作之类的题目。
很多时候赛场上能做出来的就是这种难度的线段树了,而且难度应该比这高一点,本文的题目都是比较有代表性的题目,可以考虑用作模板。