Skip to content

UIILabsDev/awesome-competitive-programming

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Awesome-Competitive-Programming

A curated list of awesome competitive programming / algorithm / data structure materials.

TODOs:

  1. Better descriptions.
  2. More great resources from other regions (eg. Russian scene, BR ICPC Camp)
  3. ICPC News site (eg. snarknews)
  4. A short reference sheet

This repository is currently not associated with the official awesome list.
For the time being I'm still looking to improve on the current contents before submitting a PR.

Contributing

Please kindly refer to CONTRIBUTING.md to get started.

Table of contents

Awesome reference materials

List of lists

A list of curated lists.

Generic

Sites / Pages covering a broad range of topics.

Implementations / Notebooks

Algorithm / Data structure implementations.
It is advised that you write your own ones before looking at others'.

Language specifics

This section mainly focuses on languages and other miscellaneous knowledge.

Awesome learning materials

Open courses

It's highly recommended that you begin your competitive programming journey with these awesome courses!

Sites to practice

Good online judges / contest platforms to practice.

  • Codeforces
    Codeforces is one of the most popular contest platforms in the world. Currently maintained by Saratov State University, it features regular contests and numerous awesome original problems. Every contest provides immediate helpful tutorials. Furthermore, many warm-hearted Codeforces members kindly answers questions on Codeforces. One would indeed learn and improve tremendously here.
  • TopCoder
    TopCoder has been around since 2001. Rich in history, It's considered to be one of the most prestigious organizations when it comes to technology competitions. Hundreds of SRMs gave birth to an abundant problemset. Problems here are typically more challenging than others. Hence, TopCoder draws many elite programmers to compete and practice here. It has arguably been on a decline, but it still is a superb platform to practice. The annual TopCoder Open is also a widely-discussed event.
  • Google Code Jam
    Google Code Jam is certainly one of the most highly-esteemed programming competitions. The competition consists of unique programming challenges which must be solved in a fixed amount of time. Competitors may use any programming language and development environment to obtain their solutions.
  • CodeChef
    CodeChef is a non-profit educational initiative of Directi. It's a global competitive programming platform and has a large community of programmers that helps students and professionals test and improve their coding skills. Its objective is to provide a platform for practice, competition and improvement for both students and professional software developers. Apart from this, it aims to reach out to students while they are young and inculcate a culture of programming in India.
  • SPOJ
    The SPOJ platform is centered around an online judge system. It holds a staggering amount of problems prepared by its community of problem setters or taken from previous programming contests, some of which are great problems for practice (refer to the Problem classifiers section). SPOJ also allows advanced users to organize contests under their own rules.
  • Timus
    Timus Online Judge is the largest Russian archive of programming problems with automatic judging system. Problems are mostly collected from contests held at the Ural Federal University, Ural Championships, Ural ACM ICPC Subregional Contests, and Petrozavodsk Training Camps.
  • SGU
    SGU is an old-school online judge maintained by Saratov State University. A high-rated competitive programmer - Huang I-Wen (dreamoon) thinks that it's the hardest online judge because its problems require unusual skills.
  • HDU
    HDU is an online judge maintained by Hangzhou Dianzi University. It holds a pretty nice problemset. Users can also run virtual contests on this platform.
  • UVa
    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 uHunt following its "Competitive Programming Exercise" section.
  • HackerRank
    HackerRank is a company that focuses on competitive programming challenges for both consumers and businesses. HackerRank's programming challenges can be solved in a variety of programming languages (including, but not limited to, Java, C++, PHP, SQL) and span multiple computer science domains.
  • POJ
    POJ is an online judge maintained by Peking University. It holds a large amount of great problems.
  • Project Euler
    There are lots of good math problems on this site. You may also discuss with others on its forum.
  • Hackerearth
    HackerEarth is a startup technology company based in Bangalore, India that provides recruitment solutions. Its clients include Adobe, Altimetrik, Citrix Systems, InMobi, Symantec and Wipro.
  • Aizu Online Judge
    Aizu online judge is a contest platform and problem archive hosted by The University of Aizu. It has a lot of great problems from programming competitions in Japan.

Problem classifiers

Sites / Pages classifying programming problems.
You can choose a category (eg. DP) of interest and practice problems on that topic.

Contest calendars

Calendars for impending programming contests.
Never miss another contest!

Books

A list of recommended books for competitive programming.

Books for algorithms

  • Introduction to Algorithms, by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein
    This book is often referred to as the "bible" for algorithms and data structures. It's one of the most popular textbooks for university algorithm courses.
  • Algorithm Design, by Jon Kleinberg and Éva Tardos
  • The Algorithm Design Manual, by Steven S. Skiena
  • Algorithms, by Robert Sedgewick and Kevin Wayne

Sites to ask questions

Awesome articles and FAQs

Other awesome websites

  • Virtual Judge (vjudge)
    Virtual Judge (vjudge) allows users to create virtual contests with problems from notable problem archives such as: Codeforces, SPOJ, UVa, POJ, Codechef ... etc..
  • BNU Online Judge
    BNU Online Judge also allows users to create virtual contests. The interface is quite nice but it isn't as widely used as the previous one (vjudge).
  • VisuAlgo
    visualgo features a large collection of visualization tools for algorithms and data structures.
  • USA Computing Olympiad (USACO)
    USACO contains several training pages on its website which are designed to develop one's skills in programming solutions to difficult and varied algorithmic problems at one's own pace.

Social media

Meet the god-like people!
Learn helpful tips, tutorials and insights from these people :)

Blogs

Team Wikis

Youtube and Livestreams

Quora

Visit Competitive Programming - Quora (Top 10 Most Viewed Writers)

Awesome people to follow (Too many people to list, separated by commas and in groups of 3's thus):
Michal Forišek (misof), 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), Thanh Trung Nguyen (I_love_Hoang_Yen), Anudeep Nekkanti (anudeep2011),
Steven Hao (stevenkplus), Raziman T.V. (razimantv), Joshua Pan (lonerz).

About

A curated list of awesome competitive programming / algorithm / data structure resources

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published