diff --git a/trees/BIT.cc b/trees/BIT.cc new file mode 100644 index 0000000..4773048 --- /dev/null +++ b/trees/BIT.cc @@ -0,0 +1,22 @@ +#include "../include.hh" + +template +struct BIT { + int n; + vector c; + BIT(size_t n) : n(n), c(n + 1) {} + void add(size_t i, const T& k) { + while (i <= n) { + c[i] += k; + i += lowbit(i); + } + } + T getsum(size_t i) { + T res = {}; + while (i) { + res += c[i]; + i -= lowbit(i); + } + return res; + } +};