Algorithms for Competitive Programming
The goal of this project is to translate the wonderful resource http://e-maxx.ru/algo which provides descriptions of many algorithms and data structures especially popular in field of competitive programming. Moreover we want to improve the collected knowledge by extending the articles and adding new articles to the collection.
Changelog
- January 16, 2022: Switched to the MkDocs site generator with the Material for MkDocs theme, which give the website a more modern look, brings a couple of new features (dark mode, better search, ...), makes the website more stable (in terms of rendering math formulas), and makes it easier to contribute.
New articles
- (12 May 2022) Factoring Exponentiation
- (7 May 2022) Knuth's Optimization
- (31 March 2022) Continued fractions
Full list of updates: Commit History
Contributing
Articles
Algebra
- Fundamentals
- Prime numbers
- Number-theoretic functions
- Modular arithmetic
- Number systems
- Miscellaneous
Data Structures
- Fundamentals
- Trees
- Advanced
Dynamic Programming
- DP optimizations
- Tasks
String Processing
- Fundamentals
- Advanced
- Tasks
Linear Algebra
- Matrices
Combinatorics
- Fundamentals
- Techniques
- Tasks
Numerical Methods
- Search
- Integration
Geometry
- Elementary operations
- Polygons
- Convex hull
- Sweep-line
- Miscellaneous
Graphs
- Graph traversal
- Connected components, bridges, articulations points
- Single-source shortest paths
- All-pairs shortest paths
- Spanning trees
- Cycles
- Lowest common ancestor
- Flows and related problems
- Matchings and related problems
- Miscellaneous
Miscellaneous
- Sequences
- Game Theory
- Schedules
- Miscellaneous