树状数组模板
template <typename T>
struct fenwick {
int n;
vector<T> a;
inline void init(int _n) {//初始化tree的大小
a.assign(n = _n, 0);
}
fenwick() {}
fenwick(int n) : n(n), a(n) {}
void add(int x, T v) {
// x++;如果有0的话,那么就需要转化区间
for(int i=x;i<=n;i+=lowbit(i)) a[i]+=v;
}
T sum(int x) {
T res=0;
// x++;
for(int i=x;i>=1;i-=lowbit(i)) res+=a[i];
return res;
}
T sum(int l, int r) {
if (l > r) return 0;
return sum(r) - sum(l - 1);
}
};
fenwick<int> tr[21];