From 9f5f1f60430d15d984e694d14c3b911933f6609a Mon Sep 17 00:00:00 2001 From: Ariel Date: Mon, 22 Jan 2024 17:09:44 +0800 Subject: [PATCH] Create BIT.cc --- trees/BIT.cc | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 trees/BIT.cc 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; + } +};