Concepts11

⚙️AlgorithmIntermediate

Sweepline Technique

The sweep line technique processes geometric or time-based events in sorted order and maintains an active set that reflects the current state at the sweep position.

#sweep line#plane sweep#active set+12
⚙️AlgorithmIntermediate

State Space Reduction

State space reduction shrinks the number of dynamic programming or search states by keeping only the information that truly affects future decisions.

#state space reduction#dynamic programming#equivalence relation+12
⚙️AlgorithmIntermediate

Offline Query Processing

Offline query processing means you collect all queries first and answer them later in a smart order that makes updates/queries cheap.

#offline query processing#mo's algorithm#fenwick tree+12
⚙️AlgorithmAdvanced

Parallel Binary Search

Parallel Binary Search (PBS) lets you binary-search the answers of many queries at once by batching them by their current mid value.

#parallel binary search#offline queries#monotone predicate+10
⚙️AlgorithmAdvanced

CDQ Divide and Conquer

CDQ divide and conquer is an offline technique that splits the timeline (or one coordinate) and lets updates from the left half contribute to queries in the right half.

#cdq divide and conquer#offline algorithm#fenwick tree+11
⚙️AlgorithmAdvanced

Mo's Algorithm - With Updates

Mo's algorithm with updates treats array modifications as a third dimension called time and answers range queries on the correct version of the array.

#mo's algorithm with updates#time dimension#offline range queries+11
⚙️AlgorithmIntermediate

Mo's Algorithm

Mo's algorithm answers many range queries offline by reordering them to minimize pointer movement along the array.

#mo's algorithm#offline queries#range queries+12
⚙️AlgorithmAdvanced

Rectangle Union Area

The union area of many axis-aligned rectangles can be computed efficiently using a sweep line over x and a segment tree tracking covered y-length.

#rectangle union area#line sweep#segment tree+12
⚙️AlgorithmIntermediate

Line Sweep

Line sweep (plane sweep) is a technique that processes geometric objects by moving an imaginary line and handling events in sorted order.

#line sweep#plane sweep#event queue+12
⚙️AlgorithmIntermediate

LIS Variants

LIS variants extend the classic longest increasing subsequence to handle non-decreasing sequences, counting how many LIS exist, and maximizing the sum of a subsequence.

#lis#lnds#patience sorting+12
⚙️AlgorithmIntermediate

Coordinate Compression

Coordinate compression replaces large, sparse, or arbitrary values with small consecutive integers while preserving relative order.

#coordinate compression#discretization#lower_bound+12