Implementation of a sparse table which is a data structure that can very quickly query a range on
a static array in $O(1)$ for overlap-friendly functions (idempotent functions) using $O(n*logn)$ memory.
For functions that are only associative, the query is done in $O(log(n))$.
UnionFind/Disjoint Set data structure implementation. This code was inspired by the union find
implementation found in ‘Algorithms Fourth Edition’ by Robert Sedgewick and Kevin Wayne.