awesome-competitive-programming

gem A curated list of awesome Competitive Programming, Algorithm and Data Structure resources

GitHub

13k stars
428 watching
3k forks
last commit: 4 months ago
Linked from 6 awesome lists

algorithmawesomeawesome-listcompetitive-programmingcontestdata-structurelearning-materialslistpracticeprogramming-contestsquorareference-materials

Awesome Competitive Programming / 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
How to prepare for ACM - ICPC? - GeeksforGeeks

Awesome Competitive Programming / Syllabuses

IOI Syllabus
How to prepare for ACM - ICPC? - GeeksforGeeks
Programming Camp Syllabus
Juniors Training Sheet , by

Awesome Competitive Programming / Tutorial Websites

Topcoder Data Science Tutorials
E-Maxx (Russian) ,
Algorithms - GeeksforGeeks
PEGWiki
Notes - HackerEarth
Code Monk A great crowdsourcing platform for tutorials. Also visit
USA Computing Olympiad (USACO)
basecs
Competitive Programming - Commonlounge
OLYMPIADS IN INFORMATICS
algolist (Russian)
演算法筆記 (Algorithm Notes) (Chinese)
国家集训队论文 1999-2015 (Papers from Chinese IOI training camps) (Chinese)
Mini-Editorials 388 about 4 years ago , by trainees
OI Wiki (Competitive Programming) (Chinese)

Awesome Competitive Programming / Open Courses

Code Monk , by HackerEarth
Stanford CS 97SI: Introduction to Competitive Programming Contests
How to Win Coding Competitions: Secrets of Champions
Codechef's Indian Programming Camp
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
Reykjavik T-414-ÁFLV: A Competitive Programming Course
Bjarki Ágúst Guðmundsson (SuprDewd) An awesome course taught by . These lectures feature neat slides and a nice list of problems to practice
NCTU DCP4631: Problem Solving and Programming Techniques
Materials (English) 1,467 about 1 year ago from

Awesome Competitive Programming / Open Courses / Open Courses for Algorithms and Data Structures

prakhar1989/awesome-courses#algorithms 56,773 over 1 year ago
MIT SMA 5503: Introduction to Algorithms
UIUC Algorithm Course

Awesome Competitive Programming / 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 刘汝佳, 黄亮

Awesome Competitive Programming / 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
Algorithms and Data Structures in Action , by Marcello La Rocca
Algorithms , by Jeff Erickson

Awesome Competitive Programming / 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

Awesome Competitive Programming / Sites for Practice

Codeforces
Topcoder
Google Code Jam
AtCoder
CodeChef
SPOJ
Timus
HDU
Aizu Online Judge
UVa
uHunt An old-school problem archive / online judge with rich history. Thousands of problems, including many classic ones, are featured here. However, it is strongly advised that you practice with following its "Competitive Programming Exercise" section
HackerRank
POJ
Project Euler
Hackerearth
Caribbean Online Judge
CS Academy
Russian Code Cup
CodeFights
OmegaUp (Spanish)

Awesome Competitive Programming / Sites for Practice / Problem Classifiers

A2 Online Judge
Problem Classifier
UVa Online Judge
Codeforces Tags
HackerRank
Juniors Training Sheet , by
Lucky貓的 UVA(ACM)園地 (Chinese)
Topcoder problem archive

Awesome Competitive Programming / Sites for Practice / Contest Calendars

Programming Contest Calendar - HackerRank
clist.by
Coding Calendar (Android App)
Coder's Calendar 339 over 5 years ago : , ,
CodeHorizon : ,
Competitive Programming Contests Calendar

Awesome Competitive Programming / Sites for Questions

Codeforces
Competitive Programming - Quora
Theoretical Computer Science Stack Exchange

Awesome Competitive Programming / Sites for Questions / Camps and Trainings

Online Free Problem-Solving Coaching , by

Awesome Competitive Programming / Implementations

CodeLibrary , by Andrey Naumenko (indy256)
GitHub Repository 1,920 about 1 month ago CodeLibrary contains a large collection of implementations for algorithms and data structures in Java and C++. You may also visit his
spaghetti-source/algorithm 781 almost 3 years ago , by Takanori MAEHARA (@tmaehara)
kth-competitive-programming/kactl 2,667 16 days ago , by Simon Lindholm (simonlindholm) et al
jaehyunp/stanfordacm 1,599 almost 4 years ago
ngthanhtrung23/ACM_Notebook_new 422 4 months ago , by team RR Watameda (I_love_Hoang_Yen, flashmt, nguyenhungtam) from National University of Singapore
bobogei81123/bcw_codebook 111 over 3 years ago , by team bcw0x1bd2 (darkhh, bobogei81123, step5) from National Taiwan University
foreverbell/acm-icpc-cheat-sheet 166 over 6 years ago , by foreverbell (foreverbell)
igor's code archive , by Igor Naverniouk (Abednego)

Awesome Competitive Programming / Language Specifics / C/C++

Power up C++ with the Standard Template Library - Topcoder: Part 1 ,
Yet again on C++ input/output - Codeforces
C++ Tricks - Codeforces
C++ STL: Policy based data structures - Codeforces: Part 1 ,
here Detailed introduction to the extra data structures implemented in GNU C++. The official documentation can be found
C++11 FAQ (English, Chinese, Russian, Japanese, Korean)

Awesome Competitive Programming / Language Specifics / Java

How to read input in Java — tutorial - Codeforces
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

Awesome Competitive Programming / Language Specifics / 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

Awesome Competitive Programming / Tools / IDEs

Vim
Emacs
Far Manager
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
Code::Blocks
IntelliJ IDEA
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
Sublime Text
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!
Eclipse
CLion
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

Awesome Competitive Programming / Tools / Personal use

VisuAlgo
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 136 over 2 years ago Codeforces Parsers: ... ... ... (emacs) (cli)
The On-Line Encyclopedia of Integer Sequences (OEIS)
tohtml.com Syntax Highlighters: ... ...
Ideone.com Code Sharing: ... ...
Ineffable
uDebug

Awesome Competitive Programming / Tools / Contest Preparation

polygon
Validators with testlib.h - Codeforces polygon provides a platform and a rich set of tools for professional contest preparation. ... An example:
Graph Editor
tcframe 156 28 days ago
Virtual Judge (vjudge)
BNU Online Judge
Kattis

Awesome Competitive Programming / Community / Blogs

Codeforces 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)

Awesome Competitive Programming / Community / Youtube and Livestreams

Youtube
Youtube
Competitive Programming Youtube (Arabic Speech-English Text)
Youtube , with many tutorial videos
Youtube
Youtube
Youtube
Youtube
Youtube
Youtube , with contest updates and problem tutorials of HackerRank, LeetCode, Topcoder and Codeforces
Youtube
Youtube
Youtube
Twitch ,
Twitch ,
Youtube
Youtube
Youtube
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

Awesome Competitive Programming / Community / Quora

Bill Poucher
ACM-ICPC Executive Director of . CS Professor at Baylor University
Michal Forišek (misof)
IPSC Organizer of and . CS Teacher at Comenius University in Slovakia. Algorithm and CS Education Researcher. Former highly-rated competitive programmer
Ahmed Aly (ahmed_aly)
A2OJ Founder of . Lead Software Engineer. Former member of the team
Thanh Trung Nguyen (I_love_Hoang_Yen)
Brian Bi (bbi5291)
Jonathan Paulson (jonathanpaulson)
Miguel Oliveira (mogers)
Egor Suvorov (yeputons)
Michal Danilák (Mimino)
Bohdan Pryshchenko (I_love_Tanya_Romanova)
Vladimir Novakovski (vnovakovski)
Nick Wu (xiaowuc1)
Cosmin Negruseri
Lalit Kundu (darkshadows)
Ashish Kedia (ashish1294)
Johnny Ho (random.johnnyh)
Joshua Pan (lonerz)
Anudeep Nekkanti (anudeep2011)
Steven Hao (stevenkplus)
Raziman T.V. (razimantv)

Awesome Competitive Programming / 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)
If you ask me how to improve your algorithm competition skill, I will give you the link of this blog. - Codeforces , by Huang I-Wen (dreamoon)
How to prepare for ACM - ICPC? - GeeksforGeeks , by Vishwesh Shrimali
Complete reference to competitive programming - HackerEarth , by Ravi Ojha
Getting started with the sport of competitive programming - HackerEarth , by Triveni Mahatha

Awesome Competitive Programming / Other Awesome Resources / FAQs

How do I start competitive programming? - Quora
How can I become good at competitive programming? - Quora ...
How is competitive programming different from real-life programming? - Quora
What have you gained from competitive programming? - Quora

Awesome Competitive Programming / Other Awesome Resources / 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 20,357 17 days ago
enjalot/algovis 1,644 almost 2 years ago
rossant/awesome-math 8,706 16 days ago
fffaraz/awesome-cpp 59,090 4 days ago
akullpp/awesome-java 41,524 21 days ago
prakhar1989/awesome-courses 56,773 over 1 year ago
vhf/free-programming-books 334,730 14 days ago
Hackr.io

Awesome Competitive Programming / Other Awesome Resources / Interview Questions

CareerCup
InterviewBit
Awesome Interviews 70,741 2 months ago
LeetCode

Backlinks from these awesome lists: