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 650 / 664 1400
Point update, minimum query 578 / 604 1400
Range update, sum query 539 / 573 1400
Range update, minimum query 496 / 511 1400
Apple picking 309 / 374 1500
Non-negative subarray 320 / 359 1500
Inversions 286 / 292 1500
K-query 321 / 337 1500
Divisible by 3 290 / 315 1500
Mushroom harvesting 175 / 188 1500
KSS 168 / 207 1500
D-query 253 / 276 1600
Greatest subarray sum 226 / 242 1600
Copying data 153 / 160 1600
Within 1 151 / 175 1600
Within 2 143 / 157 1600
Ladder update 157 / 173 1700
Racing 86 / 96 1700
One time 109 / 128 1800
Subarray XOR 109 / 116 1800
String sorting 103 / 137 1900
Odd query 34 / 56 2000
Full sequence 20 / 28 2000