A Python Library for Competitive Programming
- The Master Template works with all versions of Python and has Python 3 behaviour.
- Version Specific Templates: PyPy 2, Python 3
Algebra
- (Multivariable) Chinese Remainder Theorem
- Discrete Logarithm
- Least Common Multiple
- Integer Factorization
- Fast Fourier Transform
- Fast Subset Transform
- Number Theoretic Transform
- Deterministic Miller-Rabin Primality Test
- Tonelli–Shanks Algorithm
- Generalized Modular Inverse
- Euler's Phi Function
- Primitive Root
- Sieve of Eratosthenes
Data Structures
- Bit Array
- Binary Indexed (Fenwick) Tree
- Fractions
- Continued Fractions
- Disjoint-Set (Union Find) Data Structure
- Generic Nodes
- Linked List
- Range Query Data Structure
- (Lazy) Segment Tree
- Persistent Segment Tree
- Sorted List
- Treap
- Trie Tree
- 2-satisfiability Template
Geometry
- Convex Hull
- Line Functions
- Polygon Functions
- Vector Functions
Graphs
- Bellman-Ford Algorithm
- Breadth First Search
- Connected Components Search
- Brent's Algorithm for Cycle Detection
- Depth First Search
- Dijkstra's Algorithm
- Eulerian Path
- Path Constructor
- Floyd-Warshall Algorithm
- Bipartite Graph Check
- Kruskal's Algorithm with Disjoin Set Union
- Prim's Algorithm
- Tarjan's Algorithm
- Topological Sorting
Combinatorics
- General Purpose Numbers
- Lucas's Theorem
- Partition Function
Linear Algebra
- Matrix Arithmetic, Exponentiation, Determinant, and Inverse
- Gaussian Elimination
- Multivariable Chinese Remainder Theorem
Numerical
- Linear Recurrence Template
- Hill Climbing Algorithm
- Approximate Integration
- Polynomial Interpolation
- Integer Roots
- Binary Search
Strings
- Knuth–Morris–Pratt Algorithm
- Longest Common/Palindromic Subsequences
- Longest Common Substring
- Manacher's Algorithm
- Lydon Factorization
Misc
- bootstrap for recursion
- FastIO
- heapq
- sorted
- py3k compatibility tools
- random
- str.split for whitespace
- Bit Hacks
- 32-bit Modular Arithmetic
- Memoize Decorators
- C++ syle cout
- Interactive Runner
- Stress Tester
- Alpha–Beta Pruning
- Longest Increasing Subsequence
- K-th Order Statistic
Copyright (c) 2020 Cheran Senthilkumar