[轉載] Awesome Competitive Programming -程序员宅基地

技术标签: java  开发工具  移动开发  

本文轉貼自-> https://github.com/lnishan/aw...

Awesome Competitive Programming Awesome

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

This list is aimed to provide a complete reference and guidance for everyone.
No matter who you are, I hope you'll find this list helpful.

What is competitive programming? - Quora

Contributing

Please kindly follow CONTRIBUTING.md to get started.

You can also contribute by sharing!
Share the list with your classmates, your friends and everyone :)

By connecting more people to information,
You, are doing not me, but everyone a HUGE favor!

I really, REALLY hope that more people can benefit from this list.

Table of Contents

  • Awesome Reference Materials

    • Algorithms and Data Structures

      • Syllabuses

      • List of Lists

    • Implementations / Notebooks

    • Language Specifics

      • C/C++

      • Java

      • Miscellaneous

    • Tools

      • IDEs

      • Personal use

      • Contest Preparation

  • Awesome Learning Materials

    • Open Courses

      • Open Courses for Algorithms and Data Structures

    • Books

      • Books for Algorithms

      • Books for Mathematics

    • Sites to Practice

      • Problem Classifiers

      • Contest Calendars

    • Sites to ask Questions

  • Community

    • Blogs

    • Youtube and Livestreams

    • Quora

  • Other Awesome Resources

    • Articles

    • FAQs

    • Awesome Lists

    • Interview Questions

  • License

Awesome Reference Materials

Algorithms and Data Structures

Awesome websites to lookup and learn algorithms and data structures.

Name Description
★★★ topcoder Data Science Tutorials A list of tutorials written by respected topcoder members. Many top programmers started learning data sciences from here.
★★★ E-Maxx (Russian), (English) A tutorial website widely used and referenced in the Russian-speaking competitive programming community. Only a small fraction of the original site is translated into English, but Google Translate would work okay.
★★☆ Algorithms - GeeksforGeeks A website with a large archive of nicely written articles on different topics. It is a great complimentary resource for algorithm courses.
★★☆ PEGWiki A website with amazing in-depth wiki-like writeups on many topics. It's far better than those on Wikipedia in my opinion.
★★☆ Notes - HackerEarth A great crowdsourcing platform for tutorials. Also visit Code Monk.
★★☆ USA Computing Olympiad (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.
★☆☆ OLYMPIADS IN INFORMATICS An international journal focused on the research and practice of professionals who are working in the field of teaching and learning informatics to talented student.
★☆☆ algolist (Russian) A Russian website devoted to algorithms of all sorts. Some topics listed on this website seems pretty interesting.
★★☆ 演算法筆記 (Algorithm Notes) (Chinese) One of the most popular tutorial websites among the Taiwanese competitive programming community. The maintainer for this website spends immense efforts on researching algorithms.
★★☆ 国家集训队论文 1999-2015 (Papers from Chinese IOI training camps) (Chinese) Papers from the Chinese IOI training camps. It's interesting for the fact that one can tell different regions emphasize different things.
Syllabuses

Find out what topics you need to learn.

Name Description
★★★ IOI Syllabus A detailed syllabus on which IOI contestants will be tested. This is still somewhat relevant to ACM-ICPC.
★★☆ Programming Camp Syllabus A list of important topics in competitive programming with exercise problems.
List of Lists

These are some other awesome curated lists.

Name Description
★★★ Good Blog Post Resources about Algorithm and Data Structures - Codeforces A collection of fantastic tutorial blog posts written by Codeforces users. Some intriguing ones include Palindromic Trees, Policy Based Data Structures, and a lot more.
★★★ Data Structures and Algorithms - CodeChef Discuss A very complete list of competitive programming resources. A must-have in your browser bookmark.
★☆☆ hkirat/Algorithmic-Resources This list collected materials for some relevant topics in competitive programming.

Implementations / Notebooks

Algorithm / Data structure implementations.

It is advised that you write yours first before looking at others'.

Name Description
★★★ CodeLibrary, by Andrey Naumenko (indy256) CodeLibrary contains a large collection of implementations for algorithms and data structures in Java and C++. You may also visit his GitHub Repository.
★★☆ jaehyunp/stanfordacm Stanford's team notebook is well maintained and the codes within are of high-quality.
★★☆ ngthanhtrung23/ACM_Notebook_new, by team RR Watameda (I_love_Hoang_Yen, flashmt, nguyenhungtam) from National University of Singapore RR Watameda represented National University of Singapore for the 2016 ACM-ICPC World Finals. The items in this notebook are pretty standard and well-organized.
★★☆ bobogei81123/bcw_codebook, by team bcw0x1bd2 (darkhh, bobogei81123, step5) from National Taiwan University bcw0x1bd2 represented National Taiwan University for the 2016 ACM-ICPC World Finals. This notebook contains robust implementations for advanced data structures and algorithms.
★☆☆ SuprDewd/CompetitiveProgramming, by team viRUs from Reykjavik University One of the very few notebooks to include a tester (even integration with Travis CI). A great notebook to learn from.
★☆☆ foreverbell/acm-icpc-cheat-sheet, by foreverbell (foreverbell) A notebook with some advanced data structures and algorithms including some from the China informatics scene.
★★☆ Spaghetti Source - 各種アルゴリズムの C++ による実装 (Japanese), by 前原 貴憲 (maehara) A neatly categorized notebook in Japanese. This website is no longer being updated, but the topics discussed here are still relevant.
★☆☆ igor's code archive, by Igor Naverniouk (Abednego) A good notebook by Igor Naverniouk who is currently a software engineer at Google and part of the Google Code Jam team.
★☆☆ PetarV-/Algorithms, by Petar Veličković (PetarV) An occasionally updated assorted list of data structures and algorithms' implementations in C++, which at times extends beyond what is necessary for competitive programming.

Language Specifics

Languages and other miscellaneous knowledge.

C/C++
Name Description
★★☆ Power up C++ with the Standard Template Library - topcoder: Part 1, Part 2 An introductory tutorial on basic C++ STLs.
★★☆ Yet again on C++ input/output - Codeforces Learn more about C++ I/O optimizations.
★★☆ C++ Tricks - Codeforces ... What are some cool C++ tricks to use in a programming contest? - Quora Plentiful C++ tricks for competitive programming. Note that some should be used with care.
★★★ C++ STL: Policy based data structures - Codeforces: Part 1, Part 2 Detailed introduction to the extra data structures implemented in GNU C++. The official documentation can be found here.
★☆☆ C++11 FAQ (English, Chinese, Russian, Japanese, Korean) A list of FAQs regarding C++11 collected and written by Bjarne Stroustrup, the creator of C++.
Java
Name Description
★★☆ How to read input in Java — tutorial - Codeforces Learn how to read input faster. This is a must-read for those who intend to use Java for competitive programming
★★☆ How to sort arrays in Java and avoid TLE - Codeforces Some tips on how to avoid hitting the worst case of quick sort
★★☆ Java.math.BigInteger Class - TutorialPrint A quick reference for the famous BigInteger class in Java
★★☆ BigNum arithmetic in Java — Let's outperform BigInteger! - Codeforces A basic but faster custom BigInteger class
★★☆ EZ Collections, EZ Life (new Java library for contests) - Codeforces A Java library for contests written by Alexey Dergunov (dalex). ArrayList, ArrayDeque, Heap, Sort, HashSet, HashMap, TreeSet, TreeMap, TreeList and pair classes are implemented
Miscellaneous
Name Description
★★★ Bit Twiddling Hacks A huge compiled list of bit manipulation tricks.
★★★ Comparing Floating Point Numbers, 2012 Edition - Random ASCII Everything you need to know about floating point numbers. A must read especially for geometry topics.
★★☆ 你应该知道的浮点数基础知识 • cenalulu's Tech Blog (Chinese) A similar post on floating point numbers.
★★☆ Object-Oriented C Style Languages: C++, Objective-C, Java, C# - a side-by-side reference sheet A detailed side-by-side reference sheet for common syntaxes.

Tools

Awesome tools that will make your life easier.

IDEs
Name Platform Description
★★★ Vim CLI / Cross-Platform Vim is one of the most popular text editors among advanced programmers. It allows text-editing to be done very efficiently with solely keystrokes. Vim is also highly configurable, extensible and integrates with shells (command lines) really well. The only setback about Vim is that it has a high learning curve for beginners.
★★★ Emacs CLI / Cross-Platform Emacs is another popular text editor (or development environment to be more precise). The debate on "Vim vs. Emacs" is constantly brought up due to their popularity. Basically Emacs is more than just a text editor. It has plugins like file managers, web browsers, mail clients and news clients that allows users to performs these tasks directly inside Emacs. Emacs is "heavier" because of this, but it arguably has a relatively easier learning curve for beginners.
★★★ Far Manager Hybrid / Windows 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 FarColorer - 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 GUI / Cross-Platform Code::Blocks is the go-to IDE for C/C++. It's a full-fledged, versatile IDE with numerous great features. Code::Blocks is usually provided along with Vim in programming contests.
★★★ IntelliJ IDEA GUI / Cross-Platform 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 CHelper, a very handy plugin written for programming contests.
★★☆ Sublime Text GUI / Cross-Platform 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 Package Control installed and explore perhaps one of the largest catalogue of plugins!
★★☆ Eclipse GUI / Cross-Platform Eclipse is another good IDE for Java. It's an okay alternative to Intellij IDEA (A tad inferior to IDEA by today's standards). Sometimes contests only provide Eclipse for some reason, so this might be a good incentive to try and use Eclipse.
★★☆ CLion GUI / Cross-Platform 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 EAP (Early Access Program) which is still free as of June 20, 2016. You may want to turn off its code inspection feature as it will cause quite a bit of lag.
★☆☆ Other IDEs Mixed Visual Studio is the IDE to use in case you want to code in C#, but beware that it will be a 7GB installation. ... Both Atom and Visual Studio Code are built with Electron (written in JavaScript) and therefore resource-hogging, unfit for speed coding. ... CodeLite is a newly rising IDE. It's not good for speed coding because the load-up and project-creation times are extraordinary.
Personal use
Name Description
★★★ VisuAlgo A website featuring a large collection of visualization tools for algorithms and data structures.
★★★ General Practice Helpers: ... CHelper (IntelliJ IDEA) (manual) ... caide (Visual Studio, CodeLite) ... JHelper (AppCode, CLion) Great tools that parse contests, inline library codes and provide testing frameworks. They save you from spending your precious time on switching windows and copy-pasting back and forth.
★★☆ Codeforces Parsers: ... Codeforces Parser ... GoCF ... cfparser (emacs) These tools parse Codeforces contest problems and help run sample tests.
★★★ The On-Line Encyclopedia of Integer Sequences (OEIS) A stunning encyclopedia with a database of countless integer sequences. It also features a powerful search engine. Sometimes a seemingly difficult combinatorics problem could be equivalent to a simple or studied integer sequence.
★★☆ Syntax Highlighters: ... tohtml.com ... markup.su ... hilite.me Very handy for creating slides or team notebooks with pretty, formatted code snippets. Just copy the highlighted code snippets and paste them in your favorite WYSIWYG (What-You-See-Is-What-You-Get) editor!
★★☆ Code Sharing: ... Ideone.com ... Pastebin.com ... Ubuntu Pastebin These tools generate semi-permanent pages for code sharing. Very useful especially when you're trying to get someone else to look into your code.
★★☆ Ineffable A simple command-line grader for local grading.
Contest Preparation
Name Description
★★★ polygon polygon provides a platform and a rich set of tools for professional contest preparation. ... An example: Validators with testlib.h - Codeforces
★☆☆ A simple tool for graph visualization A very simple tool to visualize small graphs.
★★★ Virtual Judge (vjudge) Virtual Judge (vjudge) allows users to create virtual contests with problems from notable problem archives.
★★☆ BNU Online Judge BNU Online Judge also allows users to create virtual contests.
★★☆ Kattis Kattis assists in contest preparation (E-mail them for assistance).

Awesome Learning Materials

Open Courses

Consider beginning your competitive programming journey with these awesome courses!

Name Description
★★☆ Code Monk, by HackerEarth A fantastic step-by-step tutorial on the essential topics in competitive programming.
★★★ Stanford CS 97SI: Introduction to Competitive Programming Contests Offers comprehensive lecture slides and a short list of exercise problems.
★★☆ Reykjavik T-414-ÁFLV: A Competitive Programming Course An awesome course taught by Bjarki Ágúst Guðmundsson (SuprDewd). These lectures feature neat slides and a nice list of problems to practice.
★★☆ NCTU DCP4631: Problem Solving and Programming Techniques A course on basic topics featuring good lecture slides.
★★☆ How to Win Coding Competitions: Secrets of Champions A course by ITMO University on competitive coding on edX.
★☆☆ 建國中學資訊科培訓 (CKHS Training) (Chinese) CKHS Infor Club made some great lecture handouts over the years.
Open Courses for Algorithms and Data Structures
Name Description
★★★ prakhar1989/awesome-courses#algorithms A fantastic list of open courses offered by notable institutions (MIT, Stanford, UC Berkeley ... etc.).
★★★ MIT SMA 5503: Introduction to Algorithms Lectured by Prof. Charles Leiserson (one of the coauthors of Introduction to Algorithms) and Prof. Erik Demaine (a brilliant professor who has made remarkable breakthroughs in data science), the course offers great materials, accompanied by intuitive and comprehensive analyses.

Books

A list of recommended books for competitive programming.

Name Description
★★☆ Competitive Programming, by Steven and Felix Halim 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 download (pdf).
★★☆ Programming Challenges: The Programming Contest Training Manual, by Steven Skiena and Miguel Revilla This book includes more than 100 programming challenges, as well as the theory and key concepts necessary for approaching them. Problems are organized by topic, and supplemented by complete tutorial material.
★★★ Looking for a Challenge, written by a group of authors associated with the Polish Olympiads Most of the problems described in the book are really hard but they are explained in such a way that even beginners can understand. It appears to be out of stock (as of May, 2016), but you can reserve one on their official website.
★★☆ Computational Geometry: Algorithms and Applications, by Mark de Berg, Otfried Cheong, Marc van Kreveld, Mark Overmars This is a well-written book which covers a broad range of computational geometry problems.
★☆☆ The Hitchhiker’s Guide to the Programming Contests, by Nite Nimajneb This book is free for download (pdf). This book covers various topics relevant to competitive programming.
★★★ プログラミングコンテストチャレンジブック (Japanese), by 秋葉拓哉, 岩田陽一, 北川宜稔 An absolutely phenomenal book. The contents, organized in a very coherent manner, are nothing short of amazing. ... 培養與鍛鍊程式設計的邏輯腦:世界級程式設計大賽的知識、心得與解題分享 (Chinese Traditional)
★★☆ 算法竞赛入门经典 (Chinese), by 刘汝佳 The Art of Algorithms and Programming Contests (English), 打下好基礎:程式設計與演算法競賽入門經典 (Chinese Traditional)
★★☆ 算法竞赛入门经典——训练指南 (Chinese), by 刘汝佳, 陈锋 提升程式設計的解題思考力─國際演算法程式設計競賽訓練指南 (Chinese Traditional)
★★★ 算法艺术与信息学竞赛 (Chinese), by 刘汝佳, 黄亮 An old-time classic. It's old but the contents in this book are still considered to be very difficult by today's standards.
Books for Algorithms
Name Description
★★★ Introduction to Algorithms, by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein Also known as CLRS (taken from name initials), 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. This book covered various algorithms and data structures in great detail. The writing is more rigorous and can be difficult to some.
★★☆ Algorithm Design, by Jon Kleinberg and Éva Tardos 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 official website.
★★☆ The Algorithm Design Manual, by Steven S. Skiena 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 official website.
★★★ Algorithms, by Robert Sedgewick and Kevin Wayne This book is neatly categorized, coupled with elaborate explanations and fantastic illustrations. It is used in some IOI training camps as a textbook.
Books for Mathematics
Name Description
★★☆ Discrete Mathematics and Its Applications, by Kenneth H. Rosen Discrete Mathematics is closely relevant to competitive programming. This book provides comprehensive materials on a wide range of topics including: Logics and Proofs, Sets, Functions, Sequences, Matrices, Number Theory, Recursion, Counting, Probablity, Graphs, Trees and Boolean Alegra to name but a few.
★★☆ Concrete Mathematics: A Foundation for Computer Science, by Ronald L. Graham, Donald E. Knuth, Oren Patashnik The book offers a deeper insight into Discrete Mathematics with more emphases on number-related topics.
★★☆ Linear Algebra and Its Applications, by David C. Lay, Steven R. Lay, Judi J. McDonald The book does a brilliant job at bridging the gap between a physical system (for scientists and engineers) and an abstract system (for mathematicians).
★★☆ Introduction to Probability, by Charles M. Grinstead, J. Laurie Snell This is a well-written introductory probabilities book. ... It's free for download (pdf) (released under GNU Free Documentation License).
★★☆ How to Solve It: A New Aspect of Mathematical Method, by G. Polya An old-time classic. In this book, the author provides a systematic way to solve problems creatively.

Sites to Practice

Good online judge systems / contest platforms to practice.

Name Description
★★★ Codeforces Codeforces is one of, if not, the most popular contest platforms out there. Currently maintained by Saratov State University, it features regular contests and countless awesome original problems. Additionally, every contest provides immediate helpful tutorials (usually) written by the authors themselves. Codeforces also houses a strong and engaging community. All in all, 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 and topcoder therefore appeals to many elite programmers. The annual topcoder Open (TCO) 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 renowned 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's home to many classic problems from the Chinese IOI scene.
★★☆ 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 and span multiple computer science domains.
★★☆ POJ POJ is an online judge with many great problems maintained by Peking University. Most Chinese competitive programmers began their journey here.
★★☆ Project Euler Project Euler features a stunning set of good math problems. It also hosts a forum where people can discuss.
★☆☆ Hackerearth HackerEarth is a startup technology company based in Bangalore, India that provides recruitment solutions.
★★☆ 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.
★☆☆ Caribbean Online Judge COJ is hosted by University of Informatics Sciences (UCI, by its acronym in Spanish), located in Cuba. Feature ACM ICPC and Progresive constest styles, mostly from Caribbean and Latin American problem setters, also has problem classifier and contest calendar.
★★☆ CS Academy New in the competitive programming scene, CS Academy is a growing online judge that hosts competitions once every two weeks. It supports live chat, interactive lessons and an integrated online editor (that actually works).
Problem Classifiers

Sites classifying programming problems.

Choose a category (eg. DP) of interest and practice problems on that topic.

Name Description
★★★ A2 Online Judge Mixed
★★★ Problem Classifier SPOJ
★★☆ UVa Online Judge CP Book
★☆☆ Codeforces Tags CF (DP)
★★☆ HackerRank HackerRank
★★☆ Lucky貓的 UVA(ACM)園地 (Chinese) UVa
Contest Calendars

Calendars for impending programming contests.

(Never miss another contest!)

Name Description
★★★ Programming Contest Calendar - HackerRank Google Calendar export available
★★☆ clist.by API available for use
★★☆ Coding Calendar (Android App)
★★☆ Coder's Calendar: Android App, Chrome Extension, Firefox Add-on
★★★ CodeHorizon: iOS App, Android App

Sites to ask Questions

These are great sites to ask questions.

Paste your codes at ideone, pastebin or other sites to avoid formatting issues.

Name Description
★★★ Codeforces For quick answers, Codeforces is definitely the go-to place to ask about anything competition-related.
★★★ Competitive Programming - Quora You would typically get more elaborate answers on Quora, but you might not have your questions answered straightaway.
★★☆ Theoretical Computer Science Stack Exchange This place is generally for the academics, so don't ask questions about contest problems here.

Community

Meet the god-like competitive programmers!

Learn helpful tips, tutorials and insights from these people :)

Blogs

Name (Handle) Blog Name
Codeforces blogs
Petr Mitrichev (Petr) Algorithms Weekly
Bruce Merry (bmerry) Entropy always increases
Przemysław Dębiak (Psyho) Psyho's blog
Anudeep Nekkanti (anudeep2011) Namespace Anudeep ;)
vexorian (vexorian) vexorian's blog
Ashar Fuadi (fushar) Fushar's blog
LiJie Chen (WJMZBMR) WJMZBMR (Chinese)
Huang I-Wen (dreamoon) 小月的耍廢日誌 (Chinese)
Po-Jui Chen (a00012025) code倉庫 (Chinese)
Shiang-Yun Yang (morris1028) Morris' Blog (Chinese)
Yuhao Du (TooDifficuIt, TooSimple, xudyh) xudyh (Chinese, Emptied)
Dreadnought (TankEngineer, rowdark, AngryBacon) Dreadnought's Wiki (Chinese)

Youtube and Livestreams

Name (Handle) Link
HackerRank Live Youtube
Petr Mitrichev (Petr) Youtube
Egor Kulikov (Egor) Youtube
Adam Bardashevich (subscriber) Youtube
Bohdan Pryshchenko (I_love_Tanya_Romanova) Twitch, Youtube
Vladimir Smykalov (enot.1.10) Twitch, Youtube
Aleksandar Abas (Alex7) Youtube

Quora

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

Community Figures Description
Bill Poucher Executive Director of ACM-ICPC. CS Professor at Baylor University.
Michal Forišek (misof) Organizer of IPSC and IOI. CS Teacher at Comenius University in Slovakia. Algorithm and CS Education Researcher. Former highly-rated competitive programmer.

| Competitive Programmers | | |
| --- | --- | --- |
| 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) | |

Other Awesome Resources

Articles

Informative and helpful articles

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

FAQs

Fine answers to frequently-asked questions

Question
How do I start competitive programming? - Quora
How can I become good at competitive programming? - Quora ... What is the best strategy to improve my skills in competitive programming in 2-3 months? - Quora ... What is a good 6 month plan to start and progress through competitive programming? - Quora
How is competitive programming different from real-life programming? - Quora
What have you gained from competitive programming? - Quora

Awesome Lists

Relevant awesome lists

Name Link
C++ Books The Definitive C++ Book Guide and List - Stack Overflow
Java Books What are the best books to learn Java? - Quora
Advanced Java Books What is the best book for advanced Java programming? - Quora
Algorithms tayllan/awesome-algorithms
Algorithm Visualization enjalot/algovis
Math rossant/awesome-math
C++ fffaraz/awesome-cpp
Java akullpp/awesome-java
Courses prakhar1989/awesome-courses
Free Programming Books vhf/free-programming-books

Interview Questions

Name Description
CareerCup The most popular website for software engineering interview preparation
Awesome Interviews A curated list of awesome interview questions
LeetCode Video Tutorials A set of videos explaining LeetCode problems.
数据结构与算法/leetcode/lintcode题解 (LeetCode tutorials) (Chinese) Tutorials on popular interview topics.

License

Creative Commons Attribution 4.0 International

Awesome Competitive Programming is licensed under a Creative Commons Attribution 4.0 International License.

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_33704234/article/details/89344456

智能推荐

leetcode 172. 阶乘后的零-程序员宅基地

文章浏览阅读63次。题目给定一个整数 n,返回 n! 结果尾数中零的数量。解题思路每个0都是由2 * 5得来的,相当于要求n!分解成质因子后2 * 5的数目,由于n中2的数目肯定是要大于5的数目,所以我们只需要求出n!中5的数目。C++代码class Solution {public: int trailingZeroes(int n) { ...

Day15-【Java SE进阶】IO流(一):File、IO流概述、File文件对象的创建、字节输入输出流FileInputStream FileoutputStream、释放资源。_outputstream释放-程序员宅基地

文章浏览阅读992次,点赞27次,收藏15次。UTF-8是Unicode字符集的一种编码方案,采取可变长编码方案,共分四个长度区:1个字节,2个字节,3个字节,4个字节。文件字节输入流:每次读取多个字节到字节数组中去,返回读取的字节数量,读取完毕会返回-1。注意1:字符编码时使用的字符集,和解码时使用的字符集必须一致,否则会出现乱码。定义一个与文件一样大的字节数组,一次性读取完文件的全部字节。UTF-8字符集:汉字占3个字节,英文、数字占1个字节。GBK字符集:汉字占2个字节,英文、数字占1个字节。GBK规定:汉字的第一个字节的第一位必须是1。_outputstream释放

jeecgboot重新登录_jeecg 登录自动退出-程序员宅基地

文章浏览阅读1.8k次,点赞3次,收藏3次。解决jeecgboot每次登录进去都会弹出请重新登录问题,在utils文件下找到request.js文件注释这段代码即可_jeecg 登录自动退出

数据中心供配电系统负荷计算实例分析-程序员宅基地

文章浏览阅读3.4k次。我国目前普遍采用需要系数法和二项式系数法确定用电设备的负荷,其中需要系数法是国际上普遍采用的确定计算负荷的方法,最为简便;而二项式系数法在确定设备台数较少且各台设备容量差..._数据中心用电负荷统计变压器

HTML5期末大作业:网页制作代码 网站设计——人电影网站(5页) HTML+CSS+JavaScript 学生DW网页设计作业成品 dreamweaver作业静态HTML网页设计模板_网页设计成品百度网盘-程序员宅基地

文章浏览阅读7k次,点赞4次,收藏46次。HTML5期末大作业:网页制作代码 网站设计——人电影网站(5页) HTML+CSS+JavaScript 学生DW网页设计作业成品 dreamweaver作业静态HTML网页设计模板常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 明星、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 军事、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他 等网页设计题目, A+水平作业_网页设计成品百度网盘

【Jailhouse 文章】Look Mum, no VM Exits_jailhouse sr-iov-程序员宅基地

文章浏览阅读392次。jailhouse 文章翻译,Look Mum, no VM Exits!_jailhouse sr-iov

随便推点

chatgpt赋能python:Python怎么删除文件中的某一行_python 删除文件特定几行-程序员宅基地

文章浏览阅读751次。本文由chatgpt生成,文章没有在chatgpt生成的基础上进行任何的修改。以上只是chatgpt能力的冰山一角。作为通用的Aigc大模型,只是展现它原本的实力。对于颠覆工作方式的ChatGPT,应该选择拥抱而不是抗拒,未来属于“会用”AI的人。AI职场汇报智能办公文案写作效率提升教程 专注于AI+职场+办公方向。下图是课程的整体大纲下图是AI职场汇报智能办公文案写作效率提升教程中用到的ai工具。_python 删除文件特定几行

Java过滤特殊字符的正则表达式_java正则表达式过滤特殊字符-程序员宅基地

文章浏览阅读2.1k次。【代码】Java过滤特殊字符的正则表达式。_java正则表达式过滤特殊字符

CSS中设置背景的7个属性及简写background注意点_background设置背景图片-程序员宅基地

文章浏览阅读5.7k次,点赞4次,收藏17次。css中背景的设置至关重要,也是一个难点,因为属性众多,对应的属性值也比较多,这里详细的列举了背景相关的7个属性及对应的属性值,并附上演示代码,后期要用的话,可以随时查看,那我们坐稳开车了······1: background-color 设置背景颜色2:background-image来设置背景图片- 语法:background-image:url(相对路径);-可以同时为一个元素指定背景颜色和背景图片,这样背景颜色将会作为背景图片的底色,一般情况下设置背景..._background设置背景图片

Win10 安装系统跳过创建用户,直接启用 Administrator_windows10msoobe进程-程序员宅基地

文章浏览阅读2.6k次,点赞2次,收藏8次。Win10 安装系统跳过创建用户,直接启用 Administrator_windows10msoobe进程

PyCharm2021安装教程-程序员宅基地

文章浏览阅读10w+次,点赞653次,收藏3k次。Windows安装pycharm教程新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入下载安装PyCharm1、进入官网PyCharm的下载地址:http://www.jetbrains.com/pycharm/downl_pycharm2021

《跨境电商——速卖通搜索排名规则解析与SEO技术》一一1.1 初识速卖通的搜索引擎...-程序员宅基地

文章浏览阅读835次。本节书摘来自异步社区出版社《跨境电商——速卖通搜索排名规则解析与SEO技术》一书中的第1章,第1.1节,作者: 冯晓宁,更多章节内容可以访问云栖社区“异步社区”公众号查看。1.1 初识速卖通的搜索引擎1.1.1 初识速卖通搜索作为速卖通卖家都应该知道,速卖通经常被视为“国际版的淘宝”。那么请想一下,普通消费者在淘宝网上购买商品的时候,他的行为应该..._跨境电商 速卖通搜索排名规则解析与seo技术 pdf

推荐文章

热门文章

相关标签