数据结构与算法:数组、区间与图的深入解析
1. 数组与Fenwick树
1.1 Fenwick树的实现
Fenwick树是一种用于高效处理前缀和与区间和查询的数据结构。以下是其Python实现:
class Fenwick:
def __init__(self, t):
self.s = [0] * (len(t) + 1)
# create internal storage
for a, v in enumerate(t):
self.add(a, v)
# initialize
def prefixSum(self, a):
i = a + 1
# internal index starts at 1
total = 0
while i > 0:
# loops over neighbors
total += self.s[i]
# cumulative sum
i -= (i & -i)
# left neighbor
return total
def intervalSum(self, a, b):
return self.prefixSum(b) - self.prefixSum(a - 1)
def add(self, a, val):
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



