Repository with implementations and explanations of the following data structures and algorithms used in competitive programming.
- DFS
- BFS
- Topological sort
- Find cycles
- Number of paths of fixed length
- Find bridges
- Find articulation points
- Dijkstra
- Belman Ford
- Floyd Warshall
- Prim
- Kruskal
- Max flow (Edmonds Karp)
- Shortest Path Faster Algorithm (SPFA)
- Strongly connected components (Koraraju)
- Boolean 2 satisfiability (2-SAT)
- K-th ancestor
- Lowest common ancestor (LCA)
- Max flow (Dinic)
- Max flow (MPM)
- Min cost max flow (assignment problem)
- Virtual tree
- A*
- Rolling hash
- Rabin Karp
- Trie (Prefix Tree)
- Knuth Morris Pratt (KMP)
- Aho corasick (KMP Generalization)
- Suffix array
- Hash segment tree