代码
int lowbit(int i){
return i & (-i);
}
int get_sum(int pos){
int rtn = 0;
for(int i = pos; i >= 1; i -= lowbit(i)) rtn += c[i];
return rtn;
}
void modify(int pos, int delta){
for(int i = pos; i <= n; i += lowbit(i)) c[i] += delta;
}
本文介绍了一种使用树状数组实现区间求和的方法。通过定义lowbit函数获取整数的最低位非0二进制位,实现了快速计算指定位置之前元素的累积和。此外,还提供了更新树状数组中特定位置元素值的方法。
&spm=1001.2101.3001.5002&articleId=51762679&d=1&t=3&u=f1907adc48d643f6b9182559071e776e)
1056

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



