File tree Expand file tree Collapse file tree 1 file changed +32
-32
lines changed
Expand file tree Collapse file tree 1 file changed +32
-32
lines changed Original file line number Diff line number Diff line change @@ -165,38 +165,38 @@ Also this implementation supports two constructors.
165165You can create a Fenwick tree initialized with zeros, or you can convert an existing array into the Fenwick form.
166166
167167=== "C++"
168- ```{.cpp file=fenwick_sum}
169- struct FenwickTree {
170- vector<int > bit; // binary indexed tree
171- int n;
172-
173- FenwickTree(int n) {
174- this->n = n;
175- bit.assign(n, 0);
176- }
177-
178- FenwickTree(vector<int> const &a) : FenwickTree(a.size()) {
179- for (size_t i = 0; i < a.size(); i++)
180- add(i, a[i]);
181- }
182-
183- int sum(int r) {
184- int ret = 0;
185- for (; r >= 0; r = (r & (r + 1)) - 1)
186- ret += bit[r];
187- return ret;
188- }
189-
190- int sum(int l, int r) {
191- return sum(r) - sum(l - 1);
192- }
193-
194- void add(int idx, int delta) {
195- for (; idx < n; idx = idx | (idx + 1))
196- bit[idx] += delta;
197- }
198- };
199- ```
168+ ``` {.cpp file=fenwick_sum}
169+ struct FenwickTree {
170+ vector<int > bit; // binary indexed tree
171+ int n;
172+
173+ FenwickTree(int n) {
174+ this->n = n;
175+ bit.assign(n, 0);
176+ }
177+
178+ FenwickTree (vector<int > const &a) : FenwickTree(a.size()) {
179+ for (size_t i = 0; i < a.size(); i++)
180+ add(i, a[ i] );
181+ }
182+
183+ int sum(int r) {
184+ int ret = 0;
185+ for (; r >= 0; r = (r & (r + 1)) - 1)
186+ ret += bit[r];
187+ return ret;
188+ }
189+
190+ int sum(int l, int r) {
191+ return sum(r) - sum(l - 1);
192+ }
193+
194+ void add(int idx, int delta) {
195+ for (; idx < n; idx = idx | (idx + 1))
196+ bit[idx] += delta;
197+ }
198+ };
199+ ```
200200=== "Python"
201201 ```py
202202 class FenwickTree:
You can’t perform that action at this time.
0 commit comments