awesome-competitive-programming
by lnishan
A curated list of awesome Competitive Programming, Algorithm and Data Structure resources
AI summary
Competitive Programming Resource Hub
A curated collection of resources for competitive programming and algorithm learning
- stars
- 12.8K
- forks
- 2.6K
- watching
- 424
- awesome lists
- 6
- entries
- 236
What's in the list
236 links in 27 sections, with live GitHub stats.activeno commit in 2y
List of Lists
Syllabuses
Tutorial Websites
- Code Monk
A great crowdsourcing platform for tutorials. Also visit
Mini-Editorials
, by trainees
Open Courses
- Code Monk
, by HackerEarth
- Codechef's Indian Programming Camp 2016
Video Lectures from . 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
- Bjarki Ágúst Guðmundsson (SuprDewd)
An awesome course taught by . These lectures feature neat slides and a nice list of problems to practice
Open Courses / Open Courses for Algorithms and Data Structures
Books
- Competitive Programming
, by Steven and Felix Halim
- download (pdf)
This book contains a collection of relevant data structures, algorithms, and programming tips. It's a well-received book. ... The first edition is free for
- Programming Challenges: The Programming Contest Training Manual
, by Steven Skiena and Miguel Revilla
- Competitive Programmer's Handbook
, by Antti Laaksonen
- download (pdf)
An introduction to competitive programming for aspiring IOI and ICPC contestants. Free to
- Algorithmic Thinking: A Problem-Based Introduction
, by Daniel Zingaro
- Computational Geometry: Algorithms and Applications
, by Mark de Berg, Otfried Cheong, Marc van Kreveld, Mark Overmars
- The Hitchhiker’s Guide to the Programming Contests
, by Nite Nimajneb
- download (pdf)
This book is free for . This book covers various topics relevant to competitive programming
- プログラミングコンテストチャレンジブック (Japanese)
, by 秋葉拓哉, 岩田陽一, 北川宜稔
- 算法竞赛入门经典 (Chinese)
, by 刘汝佳
- 算法竞赛入门经典——训练指南 (Chinese)
, by 刘汝佳, 陈锋
- 算法艺术与信息学竞赛 (Chinese)
, by 刘汝佳, 黄亮
Books / Books for Algorithms
- Introduction to Algorithms
, by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein
- Algorithm Design
, by Jon Kleinberg and Éva Tardos
- official website
This book revolves around techniques for designing algorithms. It's well-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
- The Algorithm Design Manual
, by Steven S. Skiena
- official website
The book is written in more readable text. Some find it comprehensive than other books. You can also find some good resources (including the author's own video lectures) on its
- Algorithms
, by Robert Sedgewick and Kevin Wayne
- Advanced Algorithms and Data Structures
, by Marcello La Rocca
- Algorithms
, by Jeff Erickson
- Grokking Data Structures
, by Marcello La Rocca
Books / Books for Mathematics
- Discrete Mathematics and Its Applications
, by Kenneth H. Rosen
- Concrete Mathematics: A Foundation for Computer Science
, by Ronald L. Graham, Donald E. Knuth, Oren Patashnik
- Linear Algebra and Its Applications
, by David C. Lay, Steven R. Lay, Judi J. McDonald
- Introduction to Probability
, by Charles M. Grinstead, J. Laurie Snell
- download (pdf)
This is a well-written introductory probabilities book. ... It's free for (released under GNU Free Documentation License)
- How to Solve It: A New Aspect of Mathematical Method
, by G. Polya
- Intermediate Counting & Probability
, by David Patrick
Sites for Practice
Sites for Practice / Problem Classifiers
Sites for Practice / Contest Calendars
Coder's Calendar
: , ,
- CodeHorizon
: ,
Sites for Questions
Sites for Questions / Camps and Trainings
Implementations
- CodeLibrary
, by Andrey Naumenko (indy256)
GitHub Repository
CodeLibrary contains a large collection of implementations for algorithms and data structures in Java and C++. You may also visit his
spaghetti-source/algorithm
, by Takanori MAEHARA (@tmaehara)
kth-competitive-programming/kactl
, by Simon Lindholm (simonlindholm) et al
ngthanhtrung23/ACM_Notebook_new
, by team RR Watameda (I_love_Hoang_Yen, flashmt, nguyenhungtam) from National University of Singapore
bobogei81123/bcw_codebook
, by team bcw0x1bd2 (darkhh, bobogei81123, step5) from National Taiwan University
foreverbell/acm-icpc-cheat-sheet
, by foreverbell (foreverbell)
- igor's code archive
, by Igor Naverniouk (Abednego)
Language Specifics / C/C++
- here
Detailed introduction to the extra data structures implemented in GNU C++. The official documentation can be found
Language Specifics / Java
Language Specifics / Miscellaneous
Tools / IDEs
- FarColorer
Far Manager is the most widely-used editor in the RU/CIS competitive programming community. It's actually a file manager in its bare bones, but you can install - a syntax highlighter plugin to program on it. Properly configured, Far Manager allows you to navigate between files very efficiently while writing your codes
- CHelper
IntelliJ IDEA is certainly one of the best IDEs for Java. It's used by most competitive programmers who use Java as their main language. Be sure to check out , a very handy plugin written for programming contests
- Package Control
Sublime Text is an extraordinary text editor. Packed with powerful and innovative features like Multiple Carets, Minimaps and Command Palletes, it attracts a strong and engaging community. Sublime Text is highly extensible, so be sure to have installed and explore perhaps one of the largest catalogue of plugins!
- EAP (Early Access Program)
CLion, produced by JetBrains - the same company who made Intellij IDEA, is a powerful IDE for C++. Free educational licenses are available OR you can try out their which is still free as of Apr, 2018. You may want to turn off its code inspection feature as it will cause quite a bit of lag
- Visual Studio
is the IDE to use in case you want to code in C#. ... Both and are built with Electron (written in JavaScript) and therefore somewhat resource-hogging. ... is a newly rising IDE. Beware that the load-up and project-creation times can be extraordinary
Tools / Personal use
- CHelper
General Practice Helpers: ... (IntelliJ IDEA) ( ) ... (Visual Studio, CodeLite, standalone command line app) ... (AppCode, CLion) (Stand alone CLI tool, It is actively maintained.)
Codeforces Parser
Codeforces Parsers: ... ... ... (emacs) (cli)
- tohtml.com
Syntax Highlighters: ... ...
- Ideone.com
Code Sharing: ... ...
Tools / Contest Preparation
- Validators with testlib.h - Codeforces
polygon provides a platform and a rich set of tools for professional contest preparation. ... An example:
Community / Blogs
Community / Youtube and Livestreams
- Youtube
, with many tutorial videos
- Youtube
, with contest updates and problem tutorials of HackerRank, LeetCode, Topcoder and Codeforces
- Youtube
, Editorials, High qualtiy lectures(advanced topics)
- Youtube
, High quality videos on basic programming, data structures and algorithms
- Youtube
, Mostly streams, tips but inspiring and sometimes insightful
- Youtube
, Short lectures covering various CP related topics like Graph Theory, Number theory, DP, Advanced Data structures
- Youtube
, Editorials, screencasts
- Youtube
, High quality videos covering almost all data structures, algorithms
Community / Quora
Other Awesome Resources / Articles
- Overview of Programming Contests
, by Przemysław Dębiak (Psyho)
- The 'science' of training in competitive programming - Codeforces
, by Thanh Trung Nguyen (I_love_Hoang_Yen)
- How to prepare for ACM - ICPC? - GeeksforGeeks
, by Vishwesh Shrimali
- Getting started with the sport of competitive programming - HackerEarth
, by Triveni Mahatha
Other Awesome Resources / FAQs
Other Awesome Resources / Awesome Lists
Other Awesome Resources / Interview Questions
Nothing in this list matches your filter.
Featured in 6 awesome lists
Each link jumps to the spot where the list mentions awesome-competitive-programming.