模板及讲解
常见题型
1. 询问区间最大/最小/和
Q:给出一个区间和若干询问,修改某个点/某个区间的值,查询某个区间最大/最小
解:线段树模板。
例题:BZOJ 1012
2. 线段树合并
Q:给出一个区间,需要在区间维护若干个值。
解:线段树合并(可能运用DP思想)。
例题:BZOJ 1593
3. 离散化
Q:维护一个区间,长度为
n(n<=105)
解:运用二分查找进行离散化。
例题:Hdu 1542
4. 动态开点线段树
Q:维护一个区间,线段树上的节点n
(n<1010)
解:运用动态开点线段树。
例题:BZOJ 3531
5. 权值线段树
Q:给出一个序列,求逆序对的个数。
解:用权值线段树,每个节点存的是一个权值出现的次数
例题:poj 2299
6. 扫描线
Q:给出n个矩形,求他们的面积并/周长并。
解:运用扫描线+线段树即可。
例题:Hdu 1542,Hdu 1828