# 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**