讨论一道算法题目
讨论相对高效的方法
[解决办法]
咳咳,楼主不必介意二楼的回答(貌似错了?)。。。。
我来说说吧。
树状数组,学名 Binary Indexed Trees(BIT),又称Fenwick树(论文作者是Peter M. Fenwick嘛),有一段话是这么说的:
2D BIT
BIT can be used as a multi-dimensional data structure. Suppose you have a plane with dots (with non-negative coordinates). You make three queries:
set dot at (x , y)
remove dot from (x , y)
count number of dots in rectangle (0 , 0), (x , y) - where (0 , 0) if down-left corner, (x , y) is up-right corner and sides are parallel to x-axis and y-axis.
也就是说,2维BIT能快速解决正交区域查找(计算几何中的一个概念)
而楼主的问题却是stabbing counting query(同计算几何中的一个概念,翻译为穿刺查询统计比较霸气)。
如何解决呢?使用二维线段树吧,占用空间为O(nlgn),时间复杂度为O(lgn)。