Implementation of various Algorithms in OCaml.
### Strings:
- KMP
- Rabin-Karp 2D
- AC Automaton
- Z-algorithm
- Hash function for string
### Optimization:
- Sparse Max-flow
- Min-cost max-flow
- Push-relabel max-flow
- Min-cost matching
- Max bipartite matching
- Stable matchings
- Global Min-cut
### Geometry:
- Convex Hull
- Miscellaneous
- Half-plane intersection
- Closest Pair
- Delaunay Triangulation
### Numerical Algorithms:
- Number theoretic algorithm
- Discrete Logarithm
- Euler's function
- Systems of linear equations, matrix inverse, determinant
- Reduced row echelon form, matrix rank
- Fast Fourier Transform
- Linear Programming
- Binomal coefficient
- Sieve of Erathostenes
- Prime number
### Graphs:
- Dijkstra's algorithm
- Bellman-Ford
- MST
- Strongly connected components
- DFS
- BFS
- Topological Sort
- Eulerian Circuit
- Test Bipartite Graph
- Cut vertex/Bridge
- Biconnected Component
- Exact Cover
- Lowest Common Ancestor
### Data Structures:
- Suffix Arrays
- Binary Indexed Tree
- Union-Find
- KD-tree
- Segment Tree
- Treap
- Bits Sets
- Trie
- Rank Tree
### Miscellaneous:
- Longest Increasing Subsequence
- Maximum Rectangle in a Matrix
- Dichotomy
- 2-SAT