Concepts8

⚙️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

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
🗂️Data StructureIntermediate

Sqrt Decomposition

Sqrt decomposition partitions an array into about \(\sqrt{n}\) blocks, each of size about \(\sqrt{n}\), to speed up range queries and updates.

#sqrt decomposition#block decomposition#bucket decomposition+11
🗂️Data StructureIntermediate

Iterative Segment Tree

An iterative segment tree stores all leaves in tree[n..2n-1] and internal nodes in tree[1..n-1], enabling O(\log n) point updates and range queries without recursion.

#iterative segment tree#segment tree#non-recursive+12
🗂️Data StructureAdvanced

Dynamic Segment Tree

A dynamic segment tree stores values over a huge coordinate range by creating nodes only when an operation touches their interval.

#dynamic segment tree#sparse segment tree#lazy propagation+12
🗂️Data StructureIntermediate

Segment Tree Basics

A segment tree is a complete binary tree that stores information about array intervals to answer range queries and support point updates in O(log n).

#segment tree#range query#point update+11
🗂️Data StructureIntermediate

2D Fenwick Tree

A 2D Fenwick Tree (Binary Indexed Tree) supports point updates and rectangle sum queries in O(log n × log m) time.

#2d fenwick tree#binary indexed tree 2d#bit 2d+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