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 849 / 865 1400
Point update, minimum query 750 / 784 1400
Range update, sum query 702 / 744 1400
Range update, minimum query 641 / 660 1400
Apple picking 426 / 512 1500
Non-negative subarray 435 / 477 1500
Inversions 389 / 400 1500
K-query 430 / 449 1500
Divisible by 3 391 / 419 1500
Mushroom harvesting 242 / 253 1500
KSS 224 / 271 1500
D-query 342 / 364 1600
Greatest subarray sum 302 / 322 1600
Copying data 205 / 214 1600
Within 1 213 / 246 1600
Within 2 204 / 223 1600
Ladder update 218 / 237 1700
Racing 115 / 134 1700
One time 152 / 182 1800
Subarray XOR 145 / 154 1800
String sorting 139 / 173 1900
Odd query 40 / 65 2000
Full sequence 23 / 35 2000