树状数组
树状数组
template<class T>
struct BIT {
T t[N];
int size;
void resize(int s) { size = s; }
T query(int x) {
assert(x <= size);
T s = 0;
for (; x; x -= lowbit(x)) {
s += t[x];
}
return s;
}
void add(int x, T s) {//a[x]+=s
assert(x != 0);
for (; x <= size; x += lowbit(x)) {
t[x] += s;
}
}
};应用
树状数组二分
高维树状数组
Last updated