# Algorithms for Competitive Programming¶

The goal of this project is to translate the wonderful resource https://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.

Compiled pages are published at https://cp-algorithms.com/.

## Changelog¶

- June 26, 2023: Added automatic RSS feeds for new articles and updates in articles.
- December 20, 2022: The repository name and the owning organizations were renamed! Now the repo is located at https://github.com/cp-algorithms/cp-algorithms. It is recommended to update the upstream link in your local repositories, if you have any.
- October 31, 2022: It is now possible to select and copy $\LaTeX$ source code of formulas within the articles.
- June 8, 2022: Tags are enabled. Each article is now marked whether it is translated or original, overall tag info is present in the tag index. For translated articles, clicking on
`From: X`

tag would lead to the original article. - June 7, 2022: Date of last commit and author list with contribution percentage is tracked for each page.
- June 5, 2022: Enabled content tabs and sidebar navigation. The navigation is moved to a separate page and its structure should be adjusted in navigation.md whenever a new article is created or an old one is moved.
- 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¶

- (28 January 2024) Introduction to Dynamic Programming
- (8 December 2023) Hungarian Algorithm
- (10 September 2023) Tortoise and Hare Algorithm
- (12 July 2023) Finding faces of a planar graph
- (18 April 2023) Bit manipulation
- (17 October 2022) Binary Search
- (17 October 2022) MEX (Minimum Excluded element in an array)
- (12 May 2022) Factoring Exponentiation
- (7 May 2022) Knuth's Optimization
- (31 March 2022) Continued fractions

Full list of updates: Commit History

Full list of articles: Navigation

## Contributing¶

## Navigation¶

search: exclude: true

- Home
- Algebra
- Fundamentals
- Prime numbers
- Number-theoretic functions
- Modular arithmetic
- Number systems
- Miscellaneous

- Data Structures
- Dynamic Programming
- String Processing
- Fundamentals
- Advanced
- Tasks

- Linear Algebra
- Combinatorics
- Fundamentals
- Techniques
- Tasks

- Numerical Methods
- Geometry
- Elementary operations
- Polygons
- Convex hull
- Sweep-line
- Planar graphs
- 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