Concepts8

๐Ÿ—‚๏ธData StructureAdvanced

Segment Tree with Range Affine Transformation

A segment tree with lazy propagation can support range updates of the form x โ†’ aยทx + b (affine transformations) and range-sum queries in O(log n) per operation.

#segment tree#lazy propagation#affine update+12
โš™๏ธAlgorithmAdvanced

Sqrt Decomposition on Queries

Sqrt decomposition on queries (time blocking) processes Q operations in blocks of size about \(\sqrt{Q}\) to balance per-query overhead and rebuild cost.

#sqrt decomposition#time blocking#query blocking+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
๐Ÿ—‚๏ธData StructureAdvanced

Kinetic Tournament Tree

A kinetic tournament tree maintains the minimum (or maximum) of moving values whose pairwise order can change over time.

#kinetic data structure#tournament tree#certificate+12
๐Ÿ—‚๏ธData StructureAdvanced

Euler Tour Tree

An Euler Tour Tree represents each rooted tree as a DFS open/close sequence so that every subtree is a single contiguous interval.

#euler tour tree#implicit treap#dynamic forest+11
๐Ÿ—‚๏ธData StructureAdvanced

HLD - Path Queries and Updates

Heavy-Light Decomposition (HLD) breaks a tree into a small number of vertical chains so any path (u,v) becomes O(log n) contiguous segments in an array.

#heavy light decomposition#hld#path query+12
๐Ÿ—‚๏ธData StructureAdvanced

Persistent Segment Tree

A persistent segment tree stores every historical version of an array-like data while supporting queries and updates in O(log n) time.

#persistent segment tree#path copying#kth smallest+12
๐Ÿ—‚๏ธData StructureAdvanced

Segment Tree - Handling Multiple Lazy Operations

When a segment tree supports multiple range updates, you must define how lazy tags compose, because the order of operations matters and composition is not commutative.

#segment tree#lazy propagation#range add+12