/PyRival

⚡ Competitive Programming Library

Primary LanguagePythonApache License 2.0Apache-2.0

PyRival

A Python Library for Competitive Programming

Developers

Mukundan314pajenegoddrd93algmyrmeooowtfgsgtlaugh

Templates

Tools

Snippets

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

Apache License 2.0

Copyright (c) 2020 Cheran Senthilkumar