Concepts9

⚙️AlgorithmIntermediate

Contribution Technique

The contribution technique flips perspective: compute how much each element contributes to the total, then sum these contributions.

#contribution technique#monotonic stack#sum of subarray minimums+12
⚙️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
⚙️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
🗂️Data StructureIntermediate

Fenwick Tree - Range Update Range Query

A Fenwick Tree (Binary Indexed Tree) can support range additions and range sum queries by maintaining two trees, often called B1 and B2.

#fenwick tree#binary indexed tree#range add+12
🗂️Data StructureIntermediate

Fenwick Tree (Binary Indexed Tree)

A Fenwick Tree (Binary Indexed Tree) maintains prefix sums so you can update a single position and query a prefix in O(\log n) time with a tiny constant factor.

#fenwick tree#binary indexed tree#prefix sum+11