Data Structures and Algorithms for Problem Solving
- Sorting
- Searching
- Binary Search
- Divide and Conquer
- Two pointer
- Greedy
- Dynamic Programming
- Topological Sort
- Finding cut edges, vertices
- Longest Common Ancestor
- Shortest path
- Dijkstra
- Floyd-Warshall
- Bellman-Ford
- Minimum Spanning Tree
- Kruskal
- Prim
- Network Flow
- Floyd Warshall's
- Edmonds Karp's
- Dinic's
- Maximum Matching (Bipartite Graph)
- SCC
- Tarjan
- Koasaraju
- Trie
- Hashing
- KMP
- Aho-corasick
- Suffix Array
- Longest Common Prefix
- Bitmasking
- Mathematics
- Prime Numbers, Sieve
- Binomial Coefficients
- Greatest Common Divisor
- Extended Euclid
- Phi Function
- Computational Geometry
- Vector2
- CCW
- Convex Hull
- Point
- Lazy propagation
- Sqrt Decomposition
- Heavy light decomposition