树状数组 BIT (Binary Indexed Tree)

还没想好怎么解释,先贴程序片

int SUM(int s, int t)
{
    return sum(t) - sum(s-1);
}
int sum(int i)
{
    int ans = 0;
    while (i > 0)
    {
        ans += BIT[i];
        i -= i & -i;
    }
    return ans;
}
void modify(int i, int x)
{
    while (i <= N)
    {
        BIT[i] = x;
        i += i & -i;
    }
}

你可能感兴趣的:(数据结构)