Here's what you'll learn:
Lazy propagation delays updates until needed, enabling range updates in .
Custom merge functions combine child results for non-standard queries like bracket matching.
Segment tree beats handles operations that only affect some elements, like setting values to their square root.
BIT (Fenwick tree) counts inversions and handles prefix operations in with simpler code than segment trees.
Coordinate compression maps large values to small indices when only relative order matters.