BIT

一个动态维护前缀和的工具
image

class BIT:
    def __init__(self, n):
        self.tree = [0] * (n + 1)
        self.n = n

    def lowbit(self, x):
        return x & -x

    def update(self, x, k):
        while x <= self.n:
            self.tree[x] += k
            x += self.lowbit(x)

    def query(self, x):
        ans = 0
        while x > 0:
            ans += self.tree[x]
            x -= self.lowbit(x)
        return ans
posted @ 2024-03-31 20:00  gebeng  阅读(23)  评论(0)    收藏  举报