Data Structures19 sections · 729 units
Open in Course

BIT for Offline Queries

Process in sorted order

Many problems become easier with offline processing: read all queries first, then answer in a strategic order.

Example: "For each query (l,r,x)(l, r, x), count elements in range [l,r][l, r] that are x\leq x."

Online: hard (need persistent structures).

Offline: sort queries by xx, sort elements by value. As you increase xx, add elements to BIT. Answer each query when all relevant elements are added.

# Sort queries by x value
# Sort array elements by value
# Process in order:
#   - Add elements with value <= current x
#   - Answer queries with current x

This converts a hard problem into simple BIT queries.