Competitive Programmer's Handbook: A Free 296-Page Guide to Algorithms
Competitive Programmer's Handbook (2018) [pdf]
Antti Laaksonen's Competitive Programmer's Handbook is a free 296-page PDF covering essential algorithms and data structures for competitive programming. It spans basic techniques like sorting and dynamic programming, graph algorithms including shortest paths and tree algorithms, and advanced topics such as range queries and bit manipulation. The book emphasizes practical implementation with C++ examples and includes complexity analysis and contest resources.
The book is intended for competitive programmers who already know the basics of programming, but who want to learn algorithms and data structures.