*The goal of this project is to translate at least some pages of the wonderful resource
http://e-maxx.ru/algo which provides descriptions of many special algorithms
especially popular in field of competitive programming.*

- Euler's totient function
- Number of divisors / sum of divisors
- Euclidean algorithm for computing the greatest common divisor
- Sieve of Eratosthenes
- Extended Euclidean Algorithm
- Binary Exponentiation
- Balanced Ternary
- Linear Diophantine Equations
- Linear Congruence Equation
- Modular Inverse
- Chinese Remainder Theorem
- Primitive Root
- Discrete Root
- Discrete Log
- Enumerating submasks of a bitmask
- Gray code
- Sieve of Eratosthenes Having Linear Time Complexity
- Arbitrary-Precision Arithmetic
- Fibonacci Numbers
- Finding Power of Factorial Divisor
- Factorial modulo $p$
- Fast Fourier transform

- Disjoint Set Union
- Fenwick Tree
- Sparse Table
- Segment Tree
- Treap
- Sqrt Decomposition
- Sqrt Tree
- Minimum Stack / Minimum Queue
- Randomized Heap
- Deleting from a data structure in O(T(n)log n)

- Dynamic Programming on Broken Profile. Problem "Parquet"
- Finding the largest zero submatrix
- Divide and Conquer DP

- String Hashing
- Rabin-Karp for String Matching
- Expression parsing
- Suffix Array
- Suffix Tree
- Suffix Automaton
- Z-function
- Prefix function
- Finding all sub-palindromes in O(N)
- Lyndon factorization
- Aho-Corasick algorithm
- Finding repetitions

- The Inclusion-Exclusion Principle
- Binomial Coefficients
- Catalan Numbers
- Placing Bishops on a Chessboard
- Balanced bracket sequences
- Counting labeled graphs
- Burnside's lemma / Pólya enumeration theorem
- Stars and bars
- Generating all $K$-combinations

- Basic Geometry
- Length of the union of segments
- Oriented area of a triangle
- Intersection Point of Lines
- Finding the equation of a line for a segment
- Check if two segments intersect
- Intersection of Segments
- Circle-Line Intersection
- Circle-Circle Intersection
- Pick's Theorem - area of lattice polygons
- Lattice points of non-lattice polygon
- Area of simple polygon
- Convex hull trick and Li Chao tree
- Convex hull construction using Graham's Scan
- Check if points belong to the convex polygon in O(log N)
- Finding the nearest pair of points
- Search for a pair of intersecting segments
- Delaunay triangulation and Voronoi diagram
- Point location in O(log N)

- Breadth First Search
- Depth First Search
- Bipartite Graph Check
- Topological Sorting
- Finding Bridges in O(N+M)
- Finding Bridges Online
- Finding Articulation Points in O(N+M)
- Checking a graph for acyclicity and finding a cycle in O(M)
- Finding a Negative Cycle in the Graph
- Floyd-Warshall - finding all shortest paths
- Number of paths of fixed length / Shortest paths of fixed length
- Dijkstra - finding shortest paths from given vertex
- Dijkstra on sparse graphs
- Bellman-Ford - finding shortest paths with negative weights
- D´Esopo-Pape algorithm
- Finding Connected Components
- Lowest Common Ancestor
- Lowest Common Ancestor - Binary Lifting
- Lowest Common Ancestor - Farach-Colton and Bender algorithm
- Solve RMQ by finding LCA
- Lowest Common Ancestor - Tarjan's off-line algorithm
- Minimum Spanning Tree - Prim's Algorithm
- Minimum Spanning Tree - Kruskal
- Minimum Spanning Tree - Kruskal with Disjoint Set Union
- Prüfer code
- Kirchhoff Theorem
- Eulerian Path
- Strongly Connected Components and Condensation Graph
- Maximum flow - Ford-Fulkerson and Edmonds-Karp
- Maximum flow - Push-relabel algorithm
- Maximum flow - Push-relabel algorithm improved
- Maximum flow - Dinic's algorithm
- Maximum flow - MPM algorithm
- Flows with demands
- Minimum-cost flow
- Assignment problem. Solution using min-cost-flow in O (N^5)
- Edge connectivity / Vertex connectivity
- Tree painting
- 2-SAT
- Heavy-light decomposition

- RMQ task (Range Minimum Query - the smallest element in an interval)
- Longest increasing subsequence
- K-th order statistic in O(N)

- Scheduling jobs on one machine
- Scheduling jobs on two machines
- Optimal schedule of jobs given their deadlines and durations

- Josephus problem
- 15 Puzzle Game: Existence Of The Solution
- The Stern-Brocot Tree and Farey Sequences
- Search the subsegment with the maximum/minimum sum