区间树和芬威克树(Binary Indexed Tree,BIT)都能在O(log n)时间内回答范围查询(例如[l, r]范围内的求和)和点更新,相比之下naive扫描需要O(n),前缀和数组更新需要O(n)。
它们解决的问题
text
Array + many "sum of range [l,r]" and "update index i" calls:
naive prefix sums: query O(1) but UPDATE is O(n)
segment/Fenwick: query O(log n) AND update O(log n)
