awesome-competitive-programming
:gem: A curated list of awesome Competitive Programming, Algorithm and Data Structure resources
https://github.com/lnishan/awesome-competitive-programming
Last synced: 2 days ago
JSON representation
-
Books
-
Books for Algorithms
- Algorithm Design - organized and written in a clear, understandable language. Each chapter is backed with practical examples and helpful exercises. The chapter on network flow is highly praised by lots. ... The lecture slides that accompany the textbook are available on its [official website](http://www.cs.princeton.edu/~wayne/kleinberg-tardos/). |
- The Algorithm Design Manual
- Algorithms
- Algorithms and Data Structures in Action - chapter focusing on how to apply algorithms to real-world use cases that can be found in your daily work, or in competitive programming; it also presents a blend of classic, advanced, and new algorithms. |
- Algorithms - published textbook licensed under CC by 4.0. This is a well written book from lecture notes of theoretical computer science courses at the University of Illinois. Covers the main paradigms of backtracking, dynamic programming, greedy, and particularly graphs in depth. |
- Algorithm Design - organized and written in a clear, understandable language. Each chapter is backed with practical examples and helpful exercises. The chapter on network flow is highly praised by lots. ... The lecture slides that accompany the textbook are available on its [official website](http://www.cs.princeton.edu/~wayne/kleinberg-tardos/). |
- Grokking Data Structures
- Introduction to Algorithms
- Algorithm Design - organized and written in a clear, understandable language. Each chapter is backed with practical examples and helpful exercises. The chapter on network flow is highly praised by lots. ... The lecture slides that accompany the textbook are available on its [official website](http://www.cs.princeton.edu/~wayne/kleinberg-tardos/). |
-
Books for Mathematics
- Discrete Mathematics and Its Applications
- Concrete Mathematics: A Foundation for Computer Science - related topics. |
- Linear Algebra and Its Applications
- Introduction to Probability - written introductory probabilities book. ... It's free for [download (pdf)](http://www.dartmouth.edu/~chance/teaching_aids/books_articles/probability_book/amsbook.mac.pdf) (released under GNU Free Documentation License). |
- How to Solve It: A New Aspect of Mathematical Method - time classic. In this book, the author provides a systematic way to solve problems creatively. |
- Intermediate Counting & Probability - exclusion, 1-1 correspondences, the Pigeonhole Principle, constructive expectation, Fibonacci and Catalan numbers, recursion, conditional probability, generating functions, graph theory, and much more.. |
- Intermediate Counting & Probability - exclusion, 1-1 correspondences, the Pigeonhole Principle, constructive expectation, Fibonacci and Catalan numbers, recursion, conditional probability, generating functions, graph theory, and much more.. |
- Linear Algebra and Its Applications
-
Open Courses for Algorithms and Data Structures
- Competitive Programming - received book. ... The first edition is free for [download (pdf)](http://www.comp.nus.edu.sg/~stevenha/myteaching/competitive_programming/cp1.pdf). |
- Programming Challenges: The Programming Contest Training Manual
- Competitive Programmer's Handbook
- Algorithmic Thinking: A Problem-Based Introduction
- Computational Geometry: Algorithms and Applications - written book which covers a broad range of computational geometry problems. |
- The Hitchhiker’s Guide to the Programming Contests
- プログラミングコンテストチャレンジブック (Japanese)
- 算法竞赛入门经典 (Chinese)
- 算法竞赛入门经典——训练指南 (Chinese)
- 算法艺术与信息学竞赛 (Chinese) - time classic. It's old but the contents in this book are still considered to be very difficult by today's standards. |
- The Hitchhiker’s Guide to the Programming Contests
- 算法竞赛入门经典 (Chinese)
- 算法艺术与信息学竞赛 (Chinese) - time classic. It's old but the contents in this book are still considered to be very difficult by today's standards. |
- プログラミングコンテストチャレンジブック (Japanese)
- Competitive Programmer's Handbook
- Algorithmic Thinking: A Problem-Based Introduction
- 算法艺术与信息学竞赛 (Chinese) - time classic. It's old but the contents in this book are still considered to be very difficult by today's standards. |
-
-
Community
-
Blogs
- Algorithms Weekly
- rng_58's blog
- Entropy always increases
- Psyho's blog
- Namespace Anudeep ;)
- vexorian's blog
- Fushar's blog
- WJMZBMR (Chinese)
- 小月的耍廢日誌 (Chinese)
- Morris' Blog (Chinese)
- xudyh (Chinese)
- Entropy always increases
- Fushar's blog
- WJMZBMR (Chinese)
- 小月的耍廢日誌 (Chinese)
- Morris' Blog (Chinese)
- xudyh (Chinese)
- WJMZBMR (Chinese)
- Algorithms Weekly
- rng_58's blog
- vexorian's blog
-
Quora
- Competitive Programming - Quora - Programming/writers)).
- Bill Poucher - ICPC](https://icpc.baylor.edu). CS Professor at Baylor University. |
- Michal Forišek (misof) - rated competitive programmer. |
- Ahmed Aly (ahmed_aly) - Aly). [HackerRank](https://www.hackerrank.com) Lead Software Engineer. Former member of the [Google Code Jam](https://code.google.com/codejam/) team. |
- Thanh Trung Nguyen (I_love_Hoang_Yen) - Bi) | [Jonathan Paulson (jonathanpaulson)](https://www.quora.com/profile/Jonathan-Paulson) |
- Miguel Oliveira (mogers) - Suvorov) | [Michal Danilák (Mimino)](https://www.quora.com/profile/Michal-Danil%C3%A1k) |
- Bohdan Pryshchenko (I_love_Tanya_Romanova) - Novakovski) | [Nick Wu (xiaowuc1)](https://www.quora.com/profile/Nick-Wu-4) |
- Cosmin Negruseri - Kundu) | [Ashish Kedia (ashish1294)](https://www.quora.com/profile/Ashish-Kedia) |
- Johnny Ho (random.johnnyh) - Pan-1) | [Anudeep Nekkanti (anudeep2011)](https://www.quora.com/profile/Anudeep-Nekkanti) |
- Steven Hao (stevenkplus) - T-V) | |
-
Youtube and Livestreams
- Youtube
- Youtube
- Competitive Programming Youtube (Arabic Speech-English Text)
- Youtube
- Youtube
- Youtube
- Youtube
- Youtube
- Youtube
- Youtube
- Youtube
- Youtube
- Twitch
- Twitch
- Youtube
- Youtube
- Youtube
- Youtube
- Youtube
- Youtube
- Youtube
- Youtube
- Youtube
- Youtube
- Youtube
- Competitive Programming Youtube (Arabic Speech-English Text)
- Youtube
- Youtube
- Youtube
- Youtube
- Youtube
- Youtube
- Youtube
- Youtube
- Youtube
- Youtube
- Youtube
- Youtube
- Youtube
- Youtube
- Youtube
-
-
Implementations
-
Camps and Trainings
- CodeLibrary
- igor's code archive
- spaghetti-source/algorithm - quality implementations of many hard algorithms and data structures. |
- kth-competitive-programming/kactl - crafted team notebooks (contest libraries) I've ever seen. |
- jaehyunp/stanfordacm - quality. |
- ngthanhtrung23/ACM_Notebook_new - ICPC World Finals. The items in this notebook are pretty standard and well-organized. |
- bobogei81123/bcw_codebook - ICPC World Finals. This notebook contains robust implementations for advanced data structures and algorithms. |
- foreverbell/acm-icpc-cheat-sheet
- igor's code archive
- bobogei81123/bcw_codebook - ICPC World Finals. This notebook contains robust implementations for advanced data structures and algorithms. |
-
-
Language Specifics
-
C/C++
- Power up C++ with the Standard Template Library - Topcoder: Part 1 - science/data-science-tutorials/power-up-c-with-the-standard-template-library-part-2/) | An introductory tutorial on basic C++ STLs. |
- Yet again on C++ input/output - Codeforces
- C++ Tricks - Codeforces - Quora](https://www.quora.com/Competitive-Programming/What-are-some-cool-C++-tricks-to-use-in-a-programming-contest) | Plentiful C++ tricks for competitive programming. Note that some should be used with care. |
- C++ STL: Policy based data structures - Codeforces: Part 1
- Yet again on C++ input/output - Codeforces
- C++ Tricks - Codeforces - Quora](https://www.quora.com/Competitive-Programming/What-are-some-cool-C++-tricks-to-use-in-a-programming-contest) | Plentiful C++ tricks for competitive programming. Note that some should be used with care. |
- C++ STL: Policy based data structures - Codeforces: Part 1
-
Java
- How to read input in Java — tutorial - Codeforces - read for those who intend to use Java for competitive programming |
- How to sort arrays in Java and avoid TLE - Codeforces
- BigNum arithmetic in Java — Let's outperform BigInteger! - Codeforces
- EZ Collections, EZ Life (new Java library for contests) - Codeforces
- How to read input in Java — tutorial - Codeforces - read for those who intend to use Java for competitive programming |
- How to sort arrays in Java and avoid TLE - Codeforces
- BigNum arithmetic in Java — Let's outperform BigInteger! - Codeforces
- EZ Collections, EZ Life (new Java library for contests) - Codeforces
-
Miscellaneous
- Bit Twiddling Hacks
- Comparing Floating Point Numbers, 2012 Edition - Random ASCII
- Object-Oriented C Style Languages: C++, Objective-C, Java, C# - a side-by-side reference sheet - by-side reference sheet for common syntaxes. |
- Object-Oriented C Style Languages: C++, Objective-C, Java, C# - a side-by-side reference sheet - by-side reference sheet for common syntaxes. |
-
-
List of Lists
- Good Blog Post Resources about Algorithm and Data Structures - Codeforces
- All of the good tutorials found on codeforces - Codeforces
- Data Structures and Algorithms - CodeChef Discuss - have in your browser bookmark. |
- Good Blog Post Resources about Algorithm and Data Structures - Codeforces
- All of the good tutorials found on codeforces - Codeforces
- How to prepare for ACM - ICPC? - GeeksforGeeks - through of the preparations for ACM-ICPC. |
-
Open Courses
-
Open Courses for Algorithms and Data Structures
-
- Code Monk - by-step tutorial on the essential topics in competitive programming. |
- Stanford CS 97SI: Introduction to Competitive Programming Contests
- How to Win Coding Competitions: Secrets of Champions
- Codechef's Indian Programming Camp - from-indian-coding-camp/). Lectures given by top competitive programmers like Sergey Kulik, Kevin Charles Atienza and Anudeep Nekkanti. Primarily focused on exploring these concepts by applying them to actual competitive contest problems. |
- Reykjavik T-414-ÁFLV: A Competitive Programming Course
- NCTU DCP4631: Problem Solving and Programming Techniques
- Materials (English)
- Stanford CS 97SI: Introduction to Competitive Programming Contests
- Codechef's Indian Programming Camp - from-indian-coding-camp/). Lectures given by top competitive programmers like Sergey Kulik, Kevin Charles Atienza and Anudeep Nekkanti. Primarily focused on exploring these concepts by applying them to actual competitive contest problems. |
- NCTU DCP4631: Problem Solving and Programming Techniques
- NCTU DCP4631: Problem Solving and Programming Techniques
- NCTU DCP4631: Problem Solving and Programming Techniques
- NCTU DCP4631: Problem Solving and Programming Techniques
- NCTU DCP4631: Problem Solving and Programming Techniques
- NCTU DCP4631: Problem Solving and Programming Techniques
- NCTU DCP4631: Problem Solving and Programming Techniques
- NCTU DCP4631: Problem Solving and Programming Techniques
- NCTU DCP4631: Problem Solving and Programming Techniques
- NCTU DCP4631: Problem Solving and Programming Techniques
- NCTU DCP4631: Problem Solving and Programming Techniques
- NCTU DCP4631: Problem Solving and Programming Techniques
- NCTU DCP4631: Problem Solving and Programming Techniques
- NCTU DCP4631: Problem Solving and Programming Techniques
- NCTU DCP4631: Problem Solving and Programming Techniques
- NCTU DCP4631: Problem Solving and Programming Techniques
- NCTU DCP4631: Problem Solving and Programming Techniques
- NCTU DCP4631: Problem Solving and Programming Techniques
- NCTU DCP4631: Problem Solving and Programming Techniques
- NCTU DCP4631: Problem Solving and Programming Techniques
- NCTU DCP4631: Problem Solving and Programming Techniques
- NCTU DCP4631: Problem Solving and Programming Techniques
- Codechef's Indian Programming Camp - from-indian-coding-camp/). Lectures given by top competitive programmers like Sergey Kulik, Kevin Charles Atienza and Anudeep Nekkanti. Primarily focused on exploring these concepts by applying them to actual competitive contest problems. |
- NCTU DCP4631: Problem Solving and Programming Techniques
-
-
Other Awesome Resources
-
Articles
- Overview of Programming Contests
- The 'science' of training in competitive programming - Codeforces
- If you ask me how to improve your algorithm competition skill, I will give you the link of this blog. - Codeforces - Wen (dreamoon) |
- Complete reference to competitive programming - HackerEarth
- Getting started with the sport of competitive programming - HackerEarth
- Complete reference to competitive programming - HackerEarth
- The 'science' of training in competitive programming - Codeforces
- If you ask me how to improve your algorithm competition skill, I will give you the link of this blog. - Codeforces - Wen (dreamoon) |
-
Awesome Lists
- The Definitive C++ Book Guide and List - Stack Overflow
- What are the best books to learn Java? - Quora
- What is the best book for advanced Java programming? - Quora
- tayllan/awesome-algorithms
- enjalot/algovis
- rossant/awesome-math
- fffaraz/awesome-cpp
- akullpp/awesome-java
- vhf/free-programming-books
- Hackr.io
-
FAQs
- How do I start competitive programming? - Quora
- How can I become good at competitive programming? - Quora - 3 months? - Quora](https://www.quora.com/What-is-the-best-strategy-to-improve-my-skills-in-competitive-programming-in-2-3-months) ... [What is a good 6 month plan to start and progress through competitive programming? - Quora](https://www.quora.com/What-is-a-good-6-month-plan-to-start-and-progress-through-competitive-programming) |
-
Categories
Sub Categories
Youtube and Livestreams
41
Books for Mathematics
27
Blogs
21
Open Courses for Algorithms and Data Structures
21
Problem Classifiers
12
Camps and Trainings
11
Awesome Lists
10
Quora
10
Personal use
9
Contest Calendars
9
Books for Algorithms
9
IDEs
9
Articles
8
Java
8
Contest Preparation
7
FAQs
7
C/C++
7
Interview Questions
6
Miscellaneous
4
Keywords
awesome
5
awesome-list
5
list
4
cpp
2
algorithm
2
competitive-programming
2
data-structures
2
acm-icpc
2
education
1
books
1
mathematics
1
lecture-notes
1
courses
1
computer-science
1
resources
1
programming-tutorial
1
lists
1
javascript-interview-questions
1
libraries
1
cppcon
1
cpp-library
1
python-interview-questions
1
c-plus-plus
1
c
1
rails-interview
1
ruby
1
awesomeness
1
angularjs-interview-questions
1
android-interview-questions
1
algorithms
1
acm-icpc-handbook
1
youtube
1
training-materials
1
library
1
arabic
1
interview-practice
1
notebook
1
interview-questions
1
contest
1
interviewing
1
cc0
1
javascript
1
resource
1