Concepts5
ποΈData StructureAdvanced
Wavelet Tree
A wavelet tree is a recursive data structure built over a sequenceβs alphabet that answers rank, select, and quantile (k-th smallest) queries in O(log Ο) time, where Ο is the number of distinct values.
#wavelet tree#wavelet matrix#rank select+11
ποΈ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 StructureIntermediate
Merge Sort Tree
A Merge Sort Tree is a segment tree where every node stores the sorted list of values in its segment.
#merge sort tree#segment tree#range query+12
ποΈ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 StructureBeginner
Array and Vector
Arrays and vectors store elements contiguously, giving O(1) random access via index.
#std::vector#dynamic array#reserve+12