好吧总算把线段树给搞懂了,现在总结下
线段树主要是用于区间统计
分两种
1.区间运算型
举例:售票系统
这种的线段树都是开区间,而且有重叠,但是没有(i,i)这样的节点
例
(1,7)
(1,4) (4,7)
(1,2)(2,4)(4,5) (5,7)
(2,3)(3,4) (5,6)(6,7)
那么统计的时候有所不同//具体表现为<和<=区别
if a<mid then ~~~~
if b>mid then ~~~~
2.点运算型
举例:tyvj 忠诚
这种的线段树都是闭区间,没有重叠,有[i,i]这样的节点
例
[1,8]
[1,4] [5,8]
[1,2] [3,4] [5,6] [7,8]
[1,1] [2,2][3,3][4,4][5,5][6,6][7,7][8,8]
那么统计的时候
if a<=mid then ~~~~~
if b>=mid then ~~~~~
That is all right
线段树应该还有更高级的二维,但是联赛用不到,于是先pass~
线段树主要是用于区间统计
分两种
1.区间运算型
举例:售票系统
这种的线段树都是开区间,而且有重叠,但是没有(i,i)这样的节点
例
(1,7)
(1,4) (4,7)
(1,2)(2,4)(4,5) (5,7)
(2,3)(3,4) (5,6)(6,7)
那么统计的时候有所不同//具体表现为<和<=区别
if a<mid then ~~~~
if b>mid then ~~~~
2.点运算型
举例:tyvj 忠诚
这种的线段树都是闭区间,没有重叠,有[i,i]这样的节点
例
[1,8]
[1,4] [5,8]
[1,2] [3,4] [5,6] [7,8]
[1,1] [2,2][3,3][4,4][5,5][6,6][7,7][8,8]
那么统计的时候
if a<=mid then ~~~~~
if b>=mid then ~~~~~
That is all right
线段树应该还有更高级的二维,但是联赛用不到,于是先pass~