Module Introduction to Segment Tree and Binary Indexed Tree

Introduction to Segment Tree and Binary Indexed Tree

**Frequency: 10/10** Segment trees and binary indexed trees (BIT) are indispensable data structures in competitive programming, enabling efficient range queries and updates over arrays. Generally speaking, Segment Tree is more versatile while BIT have a lower constant factor. Since BIT can be a bit tricky to understand at first, most people choose to start with Segment Tree. And you should choose Segment Tree too.

Resources

- [CP Algorithms: Segment Tree](https://cp-algorithms.com/data_structures/segment_tree.html) - [CP Algorithms: Fenwick Tree](https://cp-algorithms.com/data_structures/fenwick.html)

Problems

Point update, sum query 497 / 508 1400
Point update, minimum query 443 / 463 1400
Range update, sum query 411 / 437 1400
Range update, minimum query 384 / 392 1400
Apple picking 240 / 292 1500
Non-negative subarray 239 / 277 1500
Inversions 224 / 231 1500
K-query 252 / 263 1500
Divisible by 3 229 / 253 1500
Mushroom harvesting 130 / 140 1500
KSS 117 / 144 1500
D-query 194 / 217 1600
Greatest subarray sum 170 / 186 1600
Copying data 114 / 120 1600
Within 1 113 / 126 1600
Within 2 106 / 117 1600
Ladder update 122 / 138 1700
Racing 69 / 77 1700
One time 83 / 100 1800
Subarray XOR 85 / 93 1800
String sorting 81 / 109 1900
Odd query 23 / 36 2000
Full sequence 8 / 14 2000