Großartige Wettbewerbsprogrammierung
Eine kuratierte Liste der fantastischen Competitive Programming , Algorithm und Data Structure .
Diese Liste erstellt mit Blick auf die Verbindung von Personen mit Informationen und enthält eine vollständige Sammlung aller fantastischen Ressourcen, die ich im Verlauf meiner elfjährigen Wettbewerbsprogrammierkarriere gesammelt habe. Ich hoffe du wirst es nützlich finden :)
Was ist Wettbewerbsprogrammierung? - Quora
Beitragen
Bitte folgen Sie den Beiträgen.
Sie können auch durch Teilen beitragen!
Teilen Sie die Liste mit Ihren Klassenkameraden, Ihren Freunden und allen :)
Indem Sie mehr Personen mit Informationen verbinden,
Du tust mich nicht, sondern alle einen großen Gefallen!
Ich hoffe wirklich, dass mehr Menschen von dieser Liste profitieren können :)
Inhaltsverzeichnis
- Liste der Listen
- Lehrpläne
- Tutorial -Websites
- Offene Kurse
- Offene Kurse für Algorithmen und Datenstrukturen
- Bücher
- Bücher für Algorithmen | Bücher für Mathematik
- Websites für das Üben
- Problemklassifizierer | Wettbewerbskalender
- Lager und Schulungen
- Websites für Fragen
- Implementierungen
- Sprachspezifikationen
- C/C ++ | Java | Verschiedenes
- Werkzeuge
- Ides | Persönlicher Gebrauch | Wettbewerbsvorbereitung
- Gemeinschaft
- Blogs | YouTube und Livestreams | Quora
- Andere großartige Ressourcen
- Artikel | FAQs | Tolle Listen | Interviewfragen
- Lizenz
Liste der Listen
Awesome kuratierte Listen, die nach Themen klassifiziert sind.
| ☆ | Name | Beschreibung |
|---|
| ★★★ | Gute Blog -Post -Ressourcen zu Algorithmus und Datenstrukturen - Codeforces | Eine Sammlung fantastischer Tutorial -Blog -Beiträge von Codeforces -Benutzern. Einige faszinierende umfassen palindromische Bäume, politischen Datenstrukturen und vieles mehr. |
| ★★★ | Alle guten Tutorials in Codeforces - Codeforces | Eine weitere gute Sammlung von Tutorial -Blog -Posts, die von Codeforces -Benutzern geschrieben wurden. |
| ★★★ | Datenstrukturen und Algorithmen - Codechef diskutieren | Eine sehr vollständige Liste der wettbewerbsfähigen Programmierressourcen. Ein Muss in Ihrem Browser-Lesezeichen. |
| ★★★ | Wie bereite ich mich auf ACM - ICPC vor? - Geeksforgeeks | Ein detaillierter Durchgang der Vorbereitungen für ACM-ICPC. |
Lehrpläne
Finden Sie heraus, welche Themen Sie lernen müssen.
| ☆ | Name | Beschreibung |
|---|
| ★★★ | Ioi Lehrplan | Ein detaillierter Lehrplan, auf dem IOI -Teilnehmer getestet werden. Dies ist für ACM-ICPC immer noch etwas relevant. |
| ★★★ | Wie bereite ich mich auf ACM - ICPC vor? - Geeksforgeeks | Ein detaillierter Durchgang der Vorbereitungen für ACM-ICPC. |
| ★★ ☆ | Programminglager Lehrplan | Eine Liste wichtiger Themen bei der Wettbewerbsprogrammierung mit Übungsproblemen. |
| ★★ ☆ | Juniors Trainingsblatt von Mostafa Saad Ibrahim | ~ 800 befohlene Probleme damit, dass Neuankömmlinge bis zu Div2-D gut sind |
Tutorial -Websites
Tolle Websites mit tollen Tutorials.
| ☆ | Name | Beschreibung |
|---|
| ★★★ | Topcoder Data Science Tutorials | Eine Liste von Tutorials, die von angesehenen Topcoder -Mitgliedern geschrieben wurden. Viele Top -Programmierer lernten von hier aus. |
| ★★★ | E-Maxx (Russisch), (Englisch) | Eine Tutorial-Website, die in der russischsprachigen wettbewerbsfähigen Programming-Community weit verbreitet ist. Die meisten Artikel der ursprünglichen Site wurden ins Englische übersetzt. Google Translate funktioniert für die verbleibenden. |
| ★★ ☆ | Algorithmen - Geeksforgeeks | Eine Website mit einem großen Archiv mit schön geschriebenen Artikeln zu verschiedenen Themen. Es ist eine großartige kostenlose Ressource für Algorithmuskurse. |
| ★★ ☆ | Pegwiki | Eine Website mit erstaunlichen, ausführlichen Wiki-ähnlichen Aufzeichnungen zu vielen Themen. Es ist meiner Meinung nach weitaus besser als die auf Wikipedia. |
| ★★ ☆ | Notizen - Hackerearth | Eine großartige Crowdsourcing -Plattform für Tutorials. Besuchen Sie auch den Code -Mönch. |
| ★★ ☆ | USA Computing Olympiade (USAACO) | Enthält mehrere Schulungsseiten auf seiner Website, die die Fähigkeiten in Programmierlösungen für schwierige und vielfältige algorithmische Probleme im eigenen Tempo entwickeln sollen. |
| ★★ ☆ | Basis | Ein Blog mit ausführlichen, illustrierten Tutorials zu grundlegenden Algorithmen und Datenstrukturen. |
| ★★ ☆ | Wettbewerbsprogrammierung - CommonLounge | Kurze Video -Tutorials für Anfänger und Zwischenkonzepte. Erweiterte Tutorials, die aus den besten in verschiedenen CP -Blogs verfügbar sind. |
| ★ ☆☆ | Olympiaden in Informatik | Ein internationales Journal konzentriert sich auf die Forschung und Praxis von Fachleuten, die im Bereich der Lehr- und Lerninformatik für talentierte Schüler arbeiten. |
| ★ ☆☆ | Algolist (Russisch) | Eine russische Website, die Algorithmen aller Art gewidmet ist. Einige auf dieser Website aufgeführte Themen scheinen ziemlich interessant zu sein. |
| ★★ ☆ | 演算法筆記 (Algorithmus Notizen) (Chinesisch) | Eine der beliebtesten Tutorial -Websites unter der taiwanesischen Wettbewerbsprogramming -Community. Der Betreuer dieser Website verbringt immense Anstrengungen zur Erforschung von Algorithmen. |
| ★★ ☆ | 国家集训队论文 1999-2015 (Papiere aus chinesischen IOI-Trainingslagern) (Chinesisch) | Papiere aus den chinesischen IOI -Trainingslagern. Es ist interessant, dass man unterschiedliche Regionen erzählen kann, die unterschiedliche Dinge betonen. |
| ★★★ | Mini-Editorials von Mostafa Saad Ibrahim Auszubildenden | Lösungen mit Mini-Editorials für viele Probleme, einschließlich UVA/Spoj/IOI/Olympiade-Probleme |
| ★★ ☆ | OI Wiki (Wettbewerbsprogramm) (Chinesisch) | OI Wiki ist verpflichtet, eine kostenlose und offene kontinuierlich aktualisierte Programmintegrationsseite (Wettbewerbsprogrammierung) zu sein. Dieses Wiki ist eine Art Begleiter oder Leitfaden für den Wettbewerbsprogrammierer, der versucht, etwas zu lernen |
Offene Kurse
Beginnen Sie mit Ihren wettbewerbsfähigen Programmierreise mit diesen großartigen Kursen!
| ☆ | Name | Beschreibung |
|---|
| ★★ ☆ | Code -Mönch von Hackerearth | Ein fantastisches Schritt-für-Schritt-Tutorial zu den wesentlichen Themen bei der Wettbewerbsprogrammierung. |
| ★★★ | Stanford CS 97SI: Einführung in Wettbewerbswettbewerben | Bietet umfassende Vorlesungsfolien und eine kurze Liste von Übungsproblemen. |
| ★★ ☆ | Wie man Codierungswettbewerbe gewinnt: Secrets of Champions | Ein Kurs der ITMO University zur Wettbewerbskodierung für EDX. |
| ★★ ☆ | Codechefs indisches Programmierlager | Videovorträge aus dem indischen Programmiercamp von Codechef 2016. Vorträge von Top -Wettbewerbsprogrammen wie Sergey Kulik, Kevin Charles Atienza und Andep Nekkanti. In erster Linie konzentrierte sich die Erforschung dieser Konzepte, indem sie auf tatsächliche Wettbewerbsprobleme angewendet werden. |
| ★★ ☆ | Reykjavik T-414-áflv: Ein wettbewerbsfähiger Programmierkurs | Ein großartiger Kurs von Bjarki Ágúst Guðmundsson (SuprDewd). Diese Vorträge haben ordentliche Folien und eine schöne Liste von Problemen, die sie üben können. |
| ★★ ☆ | NCTU DCP4631: Problemlösung und Programmierungstechniken | Ein Kurs zu grundlegenden Themen mit guten Vorlesungsfolien. |
| ★ ☆☆ | Materialien (Englisch) aus arabischem Wettbewerbsprogramming YouTube -Kanal | Einige Materialien (Objektträger und Quellcodes), die eine breite Palette algorithmischer Themen von Mostafa Saad Ibrahim abdecken. |
Offene Kurse für Algorithmen und Datenstrukturen
| ☆ | Name | Beschreibung |
|---|
| ★★★ | Prakhar1989/Awesome-Courses#Algorithmen | Eine fantastische Liste offener Kurse, die von bemerkenswerten Institutionen angeboten werden (MIT, Stanford, UC Berkeley ... usw.). |
| ★★★ | MIT SMA 5503: Einführung in Algorithmen | Der Kurs unterrichtet von Prof. Charles Leiser (einer der Mitautoren der Einführung in Algorithmen) und Prof. Erik Demaine (ein brillanter Professor, der bemerkenswerte Durchbrüche in der Datenwissenschaft erzielt hat) und bietet großartige Materialien, begleitet von intuitiven und umfassenden Analysen. |
| ★★ ☆ | UIUC -Algorithmuskurs | Vorlesungsnotizen, HomeWorks, Prüfungen und Diskussionsprobleme, die eine breite Palette algorithmischer Themen abdecken |
Bücher
Eine Liste der empfohlenen Bücher für Wettbewerbsprogramme.
| ☆ | Name | Beschreibung |
|---|
| ★★ ☆ | Wettbewerbsprogrammierung von Steven und Felix Halim | Dieses Buch enthält eine Sammlung relevanter Datenstrukturen, Algorithmen und Programmier -Tipps. Es ist ein gut aufgenommenes Buch. ... Die erste Ausgabe ist kostenlos zum Download (PDF). |
| ★★ ☆ | Programmierherausforderungen: Das Programm für Programmierwettbewerbe von Steven Skiena und Miguel Revilla | Dieses Buch enthält mehr als 100 Programmierherausforderungen sowie die Theorie und die Schlüsselkonzepte, die für die Annäherung erforderlich sind. Die Probleme werden nach Thema organisiert und durch vollständiges Tutorialmaterial ergänzt. |
| ★★ ☆ | Wettbewerbsfähiges Programmierhandbuch von Antti Laaksonen | Eine Einführung in die Wettbewerbsprogrammierung für angehende IOI- und ICPC -Teilnehmer. Kostenlos herunterladen (PDF). |
| ★★ ☆ | Algorithmisches Denken: Eine problembasierte Einführung von Daniel Zingaro | Ein Buch, das Datenstrukturen und Algorithmen unter Verwendung wettbewerbsfähiger Programmierprobleme lehrt (IOI, USACO, CCC/CCO usw.). |
| ★★ ☆ | Computergeometrie: Algorithmen und Anwendungen von Mark de Berg, Otfried Cheong, Marc Van Kreveld, Mark Overterns | Dies ist ein gut geschriebenes Buch, das eine breite Palette von Rechengeometrieproblemen abdeckt. |
| ★ ☆☆ | Der Anhängerleitfaden für die Programmierwettbewerbe von Nite Nimajneb | Dieses Buch ist kostenlos zum Download (PDF). Dieses Buch behandelt verschiedene Themen, die für Wettbewerbsprogramme relevant sind. |
| ★★★ | プログラミングコンテストチャレンジブック (japanisch), von 秋葉拓哉, 岩田陽一, 北川宜稔 | Ein absolut phänomenales Buch. Der Inhalt, der sehr kohärent organisiert ist, sind einfach erstaunlich. ... 培養與鍛鍊程式設計的邏輯腦 : 世界級程式設計大賽的知識、心得與解題分享 (chinesische traditionelle) |
| ★★ ☆ | 算法竞赛入门经典 (Chinesisch), von 刘汝佳 | Die Kunst der Algorithmen und Programmierwettbewerbe (Englisch), 打下好基礎 : : (chinesische traditionelle) |
| ★★ ☆ | 算法竞赛入门经典 算法竞赛入门经典 算法竞赛入门经典 (Chinesisch), von 刘汝佳, 陈锋 | 提升程式設計的解題思考力 ─ 國際演算法程式設計競賽訓練指南 (chinesische traditionelle) |
| ★★★ | 算法艺术与信息学竞赛 (Chinesisch), von 刘汝佳, 黄亮 | Ein Old-Time-Klassiker. Es ist alt, aber der Inhalt in diesem Buch wird nach heutigen Maßstäben immer noch als sehr schwierig angesehen. |
Bücher für Algorithmen
| ☆ | Name | Beschreibung |
|---|
| ★★★ | Einführung in Algorithmen von Thomas H. Cormen, Charles E. Leiser, Ronald L. Rivest und Clifford Stein | Dieses Buch wird auch als CLRS (aus den Namensinitialen) bezeichnet und wird häufig als "Bibel" für Algorithmen und Datenstrukturen bezeichnet. Es ist eines der beliebtesten Lehrbücher für Universitätsalgorithmuskurse. In diesem Buch wurden verschiedene Algorithmen und Datenstrukturen ausführlich behandelt. Das Schreiben ist strenger und kann für einige schwierig sein. |
| ★★ ☆ | Algorithmus -Design von Jon Kleinberg und Éva Tardos | Dieses Buch dreht sich um Techniken zum Entwerfen von Algorithmen. Es ist gut organisiert und in einer klaren, verständlichen Sprache geschrieben. Jedes Kapitel ist mit praktischen Beispielen und hilfreichen Übungen gesichert. Das Kapitel über den Netzwerkfluss wird durch Lose hoch gelobt. ... Die Vorlesungen, die das Lehrbuch begleiten, sind auf seiner offiziellen Website verfügbar. |
| ★★ ☆ | Das Algorithmus -Designhandbuch von Steven S. Skiena | Das Buch ist in lesbarerem Text geschrieben. Einige finden es umfassend als andere Bücher. Auf der offiziellen Website finden Sie auch einige gute Ressourcen (einschließlich der eigenen Videovorlesungen des Autors). |
| ★★★ | Algorithmen von Robert Sedgel und Kevin Wayne | Dieses Buch ist ordentlich kategorisiert und mit ausgefeilten Erklärungen und fantastischen Illustrationen. Es wird in einigen IOI -Trainingslagern als Lehrbuch verwendet. |
| Erweiterte Algorithmen und Datenstrukturen von Marcello La Rocca | Dieses Buch bietet einen anderen Ansatz für Algorithmen, die Theorie mit einem praktischeren Winkel ausbalanciert. Ein Abschnitt pro Kapitel konzentriert sich darauf, wie Algorithmen auf reale Anwendungsfälle angewendet werden, die in Ihrer täglichen Arbeit oder in der Wettbewerbsprogrammierung zu finden sind. Es präsentiert auch eine Mischung aus klassischen, fortschrittlichen und neuen Algorithmen. |
| ★★★ | Algorithmen von Jeff Erickson | Eine kostenlose elektronische Version eines selbst veröffentlichten Lehrbuchs, das von 4.0 unter CC lizenziert wurde. Dies ist ein gut geschriebenes Buch aus Vorlesungsnotizen theoretischer Informatikkurse an der Universität von Illinois. Deckt die Hauptparadigmen von Backtracking, Dynamic Programing, Greedy und insbesondere der Tiefe ab. |
| Trokking -Datenstrukturen von Marcello La Rocca | Durch das Trokking -Datenstrukturen führt Sie sorgfältig von den grundlegendsten Datenstrukturen wie Arrays oder verknüpften Listen bis hin zu leistungsstarken Strukturen wie Diagrammen. Es ist perfekt für Anfänger und Sie brauchen nichts mehr als die Mathematik der High School, um loszulegen. Jede Datenstruktur, die Sie begegnen, verfügt über eine eigene vollständige Python -Implementierung, damit Sie mit dem experimentieren können, was Sie sofort lernen. |
Bücher für Mathematik
| ☆ | Name | Beschreibung |
|---|
| ★★ ☆ | Diskrete Mathematik und ihre Anwendungen von Kenneth H. Rosen | Diskrete Mathematik ist für Wettbewerbsprogramme eng relevant. Dieses Buch bietet umfassende Materialien zu einer Vielzahl von Themen, darunter: Logik und Beweise, Sets, Funktionen, Sequenzen, Matrizen, Zahlentheorie, Rekursion, Zählung, Wahrscheinlichkeit, Diagramme, Bäume und Boolesche Alegra, um nur einige zu nennen. |
| ★★ ☆ | Betonmathematik: Eine Grundlage für Informatik von Ronald L. Graham, Donald E. Knuth, Oren Patashnik | Das Buch bietet einen tieferen Einblick in diskrete Mathematik mit mehr Schwerpunkten auf zahlreichen Themen. |
| ★★ ☆ | Lineare Algebra und ihre Anwendungen von David C. Lay, Steven R. Lay, Judi J. McDonald | Das Buch leistet eine brillante Arbeit darin, die Lücke zwischen einem physischen System (für Wissenschaftler und Ingenieure) und einem abstrakten System (für Mathematiker) zu überbrücken. |
| ★★ ☆ | Einführung zur Wahrscheinlichkeit von Charles M. Grinstead, J. Laurie Snell | Dies ist ein gut geschriebenes Buch für Einführungswahrscheinlichkeiten. ... Es ist kostenlos zum Download (PDF) (veröffentlicht unter GNU Free Dokumentation Lizenz). |
| ★★ ☆ | Wie man es löst: Ein neuer Aspekt der mathematischen Methode von G. Polya | Ein Old-Time-Klassiker. In diesem Buch bietet der Autor eine systematische Möglichkeit, Probleme kreativ zu lösen. |
| ★★ ☆ | Zwischenzählung und Wahrscheinlichkeit von David Patrick | Themen in der Zählung und Wahrscheinlichkeit Byformer USA Mathematischer Olympiade-Gewinner David Patrick sind Themen, die Inklusions-Exklusion, 1-1 Korrespondenzen, das Pigeonhole-Prinzip, konstruktive Erwartung, Fibonacci und katalanische Zahlen, Rekursion, bedingte Wahrscheinlichkeit, Erzeugung von Funktionen, Graphentheorie, und vieles mehr. |
Websites für das Üben
Gute Online -Richtersysteme / Wettbewerbsplattformen zum Üben.
| ☆ | Name | Beschreibung |
|---|
| ★★★ | Codeforces | CodeForces ist eine der beliebtesten Wettbewerbsplattformen da draußen. Derzeit wird von der Saratov State University gepflegt und verfügt über regelmäßige Wettbewerbe und unzählige großartige Originalprobleme. Darüber hinaus bietet jeder Wettbewerb sofortige hilfreiche Tutorials (normalerweise), die von den Autoren selbst geschrieben wurden. CodeForces beherbergt auch eine starke und engagierte Gemeinschaft. Alles in allem würde man hier tatsächlich lernen und sich enorm verbessern. |
| ★★★ | Topcoder | Topcoder gibt es seit 2001. Reich in der Geschichte, es wird als eine der angesehensten Organisationen in Bezug auf Technologiewettbewerbe angesehen. Hunderte von SRMs brachten ein reichhaltiges Problem zur Welt. Die Probleme hier sind in der Regel schwieriger als andere und Topcoder spricht daher viele Elite -Programmierer an. Der jährliche Topcoder Open (TCO) ist ebenfalls eine weit verbreitete Veranstaltung. |
| ★★★ | Google Code Jam | Google Code Jam ist sicherlich einer der am besten geschätzten Programmierwettbewerbe. Der Wettbewerb besteht aus einzigartigen Programmierherausforderungen, die in einer festen Zeitleistung gelöst werden müssen. Wettbewerber können jede Programmiersprache und Entwicklungsumgebung verwenden, um ihre Lösungen zu erhalten. |
| ★★★ | Atcoder | Atcoder ist eine neue, aber phänomenale Wettbewerbsplattform, die von einem Team hochwertiger japanischer Wettbewerbsprogrammierer erstellt wurde. |
| ★★ ☆ | Codechef | Codechef ist eine gemeinnützige Bildungsinitiative von Directi. Es ist eine globale Wettbewerbsprogrammierungsplattform und verfügt über eine große Community von Programmierern, die den Schülern und Fachleuten hilft, ihre Codierungsfähigkeiten zu testen und zu verbessern. Ziel ist es, sowohl Studenten als auch professionellen Softwareentwicklern eine Plattform für Praxis, Wettbewerb und Verbesserung zu bieten. Abgesehen davon zielt darauf ab, die Schüler zu erreichen, während sie jung sind und eine Programmkultur in Indien einbringen. |
| ★★★ | Spoj | Die Spoj -Plattform dreht sich um ein Online -Richtersystem. Es enthält eine erstaunliche Menge an Problemen, die von der Community von Problemstörungen oder von früheren Programmierwettbewerben entnommen wurden, von denen einige große Probleme für die Praxis sind (siehe Abschnitt "Problemklassifizierer). Mit Spoj können fortgeschrittene Benutzer Wettbewerbe nach ihren eigenen Regeln organisieren. |
| ★★ ☆ | Timus | Timus Online -Richter ist das größte russische Archiv für Programmierprobleme mit dem automatischen Richtersystem. Probleme werden hauptsächlich von Wettbewerben an der Ural Federal University, den Ural -Meisterschaften, den subregionalen Wettbewerben der URAL ACM -ICPC und Petrozavodsk -Trainingslagern gesammelt. |
| ★ ☆☆ | HDU | HDU ist ein Online -Richter, der von der Hangzi -Dianzi -Universität gepflegt wird. Es ist die Heimat von vielen klassischen Problemen aus der chinesischen IOI -Szene. |
| ★★ ☆ | Aizu Online -Richter | Aizu Online Judge ist eine von der University of Aizu veranstaltete Plattform und ein Problemarchiv. Es hat viele große Probleme aus Programmierwettbewerben in Japan. |
| ★★ ☆ | UVA | Ein Archiv- / Online-Richter in der alten Schule mit reicher Geschichte. Tausende Probleme, darunter viele klassische, werden hier vorgestellt. Es wird jedoch dringend darauf hingewiesen, dass Sie mit Uhunt nach dem Abschnitt "Wettbewerbsprogrammierung" praktizieren. |
| ★★ ☆ | Hackerrank | Hackerrank ist ein Unternehmen, das sich auf wettbewerbsfähige Programmprobleme sowohl für Verbraucher als auch für Unternehmen konzentriert. Die Programmierherausforderungen von Hackerrank können in einer Vielzahl von Programmiersprachen gelöst werden und umfassen mehrere Informatik -Domänen. |
| ★★ ☆ | Poj | Poj ist ein Online -Richter mit vielen großen Problemen, die von der Peking University beibehalten werden. Die meisten chinesischen Wettbewerbsprogrammierer begannen hier ihre Reise. Die Plattform ist wirklich veraltet, so dass mysteriöse Zusammenstellungen und Laufzeitprobleme auftreten können. |
| ★★ ☆ | Projekt Euler | Project Euler verfügt über eine erstaunliche Reihe guter mathematischer Probleme. Es beherbergt auch ein Forum, in dem Menschen diskutieren können. |
| ★ ☆☆ | Hackerearth | Hackerearth ist ein Startup -Technologieunternehmen mit Sitz in Bangalore, Indien, das Rekrutierungslösungen anbietet. |
| ★ ☆☆ | Karibik Online -Richter | COJ wird von der University of Informatics Sciences (UCI von seinem Akronym in Spanisch) in Kuba veranstaltet. Mit ACM ICPC- und Progressive -Wettbewerbsstilen, hauptsächlich aus karibischen und lateinamerikanischen Problemsetzen, verfügt auch über einen Problemklassifikator und einen Wettbewerbskalender. |
| ★★ ☆ | CS Academy | Die CS Academy ist neu in der wettbewerbsfähigen Programmierszene und ist ein wachsender Online -Richter, der alle zwei Wochen Wettbewerbe veranstaltet. Es unterstützt Live -Chat, interaktive Lektionen und einen integrierten Online -Editor (das tatsächlich funktioniert). |
| ★★ ☆ | Russischer Code -Cup | Programmierwettbewerbe von Mail.ru Group. Der Wettbewerb besteht aus 3 Qualifikation, 1 Eliminierung und 1 Endrunden. Für jede Runde erhalten die Teilnehmer 4-8 Probleme, die in fester Zeit gelöst werden müssen. |
| ★★ ☆ | Codekämpfe | Codefights ist eine Website für wettbewerbsfähige Programmierpraxis und Interviewvorbereitung. Es verfügt über tägliche Herausforderungen unterschiedlicher Schwierigkeiten, ein Archiv mit Problemen und regelmäßige (alle 15 Minuten) Mini-Turniere. Gut für Anfänger. |
| ★★ ☆ | Omegaup (Spanisch) | Omegaup ist eine Community-basierte Website für wettbewerbsfähige Programmierausbildung. Hier wird auch die mexikanische Olympiade in Informatik (OMI: Olimpiada Mexicana de Informática) veranstaltet. |
Problemklassifizierer
Websites klassifizieren Programmierprobleme.
Wählen Sie eine Kategorie (z. B. DP) von Interesse und Praxisproblemen zu diesem Thema.
| ☆ | Name | Beschreibung |
|---|
| ★★★ | A2 Online -Richter | Gemischt |
| ★★★ | Problemklassifizierer | Spoj |
| ★★ ☆ | UVA Online -Richter | CP -Buch |
| ★ ☆☆ | Codeforces -Tags | CF (DP) |
| ★★ ☆ | Hackerrank | Hackerrank |
| ★★ ☆ | Juniors Trainingsblatt von Mostafa Saad Ibrahim | ~ 800 befohlene Probleme damit, dass Neuankömmlinge bis zu Div2-D gut sind |
| ★★ ☆ | Lucky 貓的 Uva (ACM )園地 (Chinesisch) | UVA |
| ★★ ☆ | Topcoder -Problemarchiv | Liste der Probleme mit Kategorien und Komplexitätsstufen |
Wettbewerbskalender
Kalender für bevorstehende Programmierwettbewerbe.
(Verpassen Sie nie einen weiteren Wettbewerb!)
| ☆ | Name | Beschreibung |
|---|
| ★★★ | Programmierwettbewerbskalender - Hackerrank | Google -Kalenderexporte verfügbar |
| ★★ ☆ | Clist.by | API zur Verwendung verfügbar |
| ★★ ☆ | Codierungskalender (Android App) | |
| ★★ ☆ | Codierer Kalender: Android-App, Chrome-Erweiterung, Firefox-Add-On | |
| ★★★ | Codehorizon: iOS -App, Android App | |
| ★★★ | Wettbewerbswettbewerbskalender | Google -Kalenderexporte verfügbar |
Websites für Fragen
Dies sind großartige Websites, um Fragen zu stellen.
Fügen Sie Ihre Codes in IDEone, Pastebin oder anderen Websites ein, um Formatierungsprobleme zu vermeiden.
| ☆ | Name | Beschreibung |
|---|
| ★★★ | Codeforces | Für schnelle Antworten ist CodeForces definitiv der Anlaufpunkt, um nach dem Wettbewerb zu fragen. |
| ★★★ | Wettbewerbsprogrammierung - Quora | Normalerweise erhalten Sie aufwändigere Antworten auf Quora, aber Sie werden Ihre Fragen möglicherweise nicht sofort beantworten. |
| ★★ ☆ | Theoretischer Informatik -Stack -Austausch | Dieser Ort ist im Allgemeinen für die Akademiker gedacht. Stellen Sie hier keine Fragen zu Wettbewerbsproblemen. |
Lager und Schulungen
Online -Schulungen und Camps.
| ☆ | Name | Beschreibung |
|---|
| ★★★ | Online kostenloses Problemlösungscoaching von Mostafa Saad Ibrahim | Sehen Sie sich die Coaching -Details und die Leute an, die sich zu ihrer Natur/Qualität kommentieren. |
Implementierungen
Implementierungen von Algorithmus und Datenstruktur.
| ☆ | Name | Beschreibung |
|---|
| ★★★ | Codelibrary von Andrey Naurenko (INDY256) | Die Codelibrary enthält eine große Sammlung von Implementierungen für Algorithmen und Datenstrukturen in Java und C ++. Sie können auch sein Github -Repository besuchen. |
| ★★★ | Spaghetti-Source/Algorithmus von Takanori Maehara (@tmaehara) | Hochwertige Implementierungen vieler harter Algorithmen und Datenstrukturen. |
| ★★★ | KTH-wettbewerbsfähige Programmierung/KACTL, von Simon Lindholm (Simonlindholm) et al. | Ein phänomenal organisiertes, dokumentiertes und getestetes Team -Notizbuch vom KTH Royal Institute of Technology. Eines der am besten gefertigten Team-Notizbücher (Wettbewerbsbibliotheken), die ich je gesehen habe. |
| ★★ ☆ | Jaehyunp/Stanfordacm | Stanfords Team Notebook ist gut gepflegt und die Codes innerhalb von hoher Qualität. |
| ★★ ☆ | ngthanhtrung23/acm_notebook_new, von Team RR Watameda (i_love_hoang_yen, Flashmt, Nguyenhungtam) von der National University of Singapore | RR Wassameda vertrat die National University of Singapore für das ACM-ICPC-Weltfinale 2016. Die Artikel in diesem Notebook sind ziemlich Standard und gut organisiert. |
| ★★ ☆ | BOBOGEI81123/BCW_CODBOOK, von Team BCW0X1BD2 (Darkhh, Bobogei81123, Schritt 5) von der National Taiwan University | BCW0X1BD2 vertrat die National Taiwan University für das ACM-ICPC-Weltfinale 2016. Dieses Notebook enthält robuste Implementierungen für erweiterte Datenstrukturen und Algorithmen. |
| ★ ☆☆ | Foreverbell/ACM-ICPC-Cheat-Sheet, von Foreverbell (Foreverbell) | Ein Notizbuch mit einigen erweiterten Datenstrukturen und Algorithmen, einschließlich einiger aus der China -Informatikszene. |
| ★ ☆☆ | Igors Codearchiv von Igor Naverniouk (Abednego) | Ein gutes Notizbuch von Igor Naverniouk, der derzeit Software -Ingenieur bei Google und Teil des Google Code Jam -Teams ist. |
Sprachspezifikationen
Sprachen und andere verschiedene Kenntnisse.
C/C ++
| ☆ | Name | Beschreibung |
|---|
| ★★ ☆ | Mit der Standard -Vorlagenbibliothek C ++ einschalten - Topcoder: Teil 1, Teil 2 | Ein Einführungs -Tutorial zu Basic C ++ Stls. |
| ★★ ☆ | Noch einmal bei C ++ Input/Ausgabe - Codeforces | Erfahren Sie mehr über C ++ - I/A -Optimierungen. |
| ★★ ☆ | C ++ Tricks - Codeforces ... Was sind einige coole C ++ - Tricks, die Sie in einem Programmierwettbewerb verwenden müssen? - Quora | Reichlich C ++ - Tricks für die Wettbewerbsprogrammierung. Beachten Sie, dass einige mit Sorgfalt verwendet werden sollten. |
| ★★★ | C ++ STL: Richtlinienbasierte Datenstrukturen - Codeforces: Teil 1, Teil 2 | Detaillierte Einführung in die zusätzlichen Datenstrukturen, die in GNU C ++ implementiert sind. Die offizielle Dokumentation finden Sie hier. |
| ★ ☆☆ | C ++ 11 FAQ (Englisch, Chinesisch, Russisch, Japanisch, Koreanisch) | Eine Liste von FAQs in Bezug auf C ++ 11 wurde von Bjarne Stroustrup, dem Schöpfer von C ++, gesammelt und geschrieben. |
Java
| ☆ | Name | Beschreibung |
|---|
| ★★ ☆ | So lesen Sie Eingaben in Java - Tutorial - Codeforces | Erfahren Sie, wie Sie Eingaben schneller lesen. Dies ist ein Muss für diejenigen, die Java für Wettbewerbsprogramme verwenden möchten |
| ★★ ☆ | So sortieren Sie Arrays in Java und vermeiden Sie Tle - Codeforces | Einige Tipps, wie man vermeiden kann, den schlimmsten Fall von schneller Art zu treffen |
| ★★ ☆ | Bignum -Arithmetik in Java - Lassen Sie uns Biginteger übertreffen! - Codeforces | Eine grundlegende, aber schnellere Biginteger -Klasse |
| ★★ ☆ | EZ -Sammlungen, EZ Life (New Java Library for Wettbewerben) - Codeforces | Eine Java -Bibliothek für Wettbewerbe von Alexey Dergunov (Dalex). ArrayList, Arraydeque, Heap, Sortier, Hashset, HashMap, Treeset, Treemap, Treelist und Paarklassen werden implementiert |
Verschiedenes
| ☆ | Name | Beschreibung |
|---|
| ★★★ | Bit twiddling Hacks | Eine riesige kompilierte Liste von Bit -Manipulations -Tricks. |
| ★★★ | Vergleich der schwimmenden Punktzahlen, 2012 Ausgabe - zufälliger ASCII | Alles, was Sie über schwimmende Punktzahlen wissen müssen. Ein muss besonders für Geometrie -Themen gelesen werden. |
| ★★ ☆ | Objektorientierte Sprachen im C-Stil: C ++, Objektiv-C, Java, C#-ein Side-by-Side-Referenzblatt | Ein detailliertes Side-by-Side-Referenzblatt für gemeinsame Syntaxe. |
Werkzeuge
Fantastische Werkzeuge, die Ihr Leben erleichtern.
Ides
| ☆ | Name | Plattform | Beschreibung |
|---|
| ★★★ | Vim | CLI / plattformübergreifend | Vim ist einer der beliebtesten Textredakteure unter fortschrittlichen Programmierern. Es ermöglicht die Bewirtschaftung von Texten sehr effizient mit ausschließlich Tastenanschlägen. VIM ist auch sehr konfigurierbar, erweiterbar und integriert wirklich gut in Shells (Befehlszeilen). Der einzige Rückschlag an Vim ist, dass es eine hohe Lernkurve für Anfänger hat. |
| ★★★ | EMACs | CLI / plattformübergreifend | EMACS ist ein weiterer beliebter Texteditor (oder Entwicklungsumgebung, um genauer zu sein). Die Debatte über "Vim vs. Emacs" wird aufgrund ihrer Popularität ständig zur Verfügung gestellt. Grundsätzlich ist EMACs mehr als nur ein Texteditor. Es verfügt über Plugins wie Dateimanager, Webbrowser, Mail -Clients und Nachrichten -Clients, mit denen Benutzer diese Aufgaben direkt in EMACs ausführen können. EMACs ist aus diesem Grund "schwerer", aber es hat wohl eine relativ einfachere Lernkurve für Anfänger. |
| ★★★ | Fernmanager | Hybrid / Windows | FAR Manager ist der am häufigsten verwendete Redakteur in der RU/CIS-Wettbewerbs-Programming-Community. Es ist eigentlich ein Dateimanager in den bloßen Knochen, aber Sie können Farcolorer installieren - ein Syntax -Highlighter -Plugin, das darauf programmiert wird. Mit ordnungsgemäß konfiguriertem FAR -Manager können Sie beim Schreiben Ihrer Codes sehr effizient zwischen Dateien navigieren. |
| ★★★ | Code :: Blöcke | GUI / plattformübergreifend | Code :: Blocks ist die Anlaufstelle für C/C ++. Es ist eine vollwertige, vielseitige IDE mit zahlreichen großartigen Funktionen. Code :: Blöcke werden normalerweise zusammen mit VIM in Programmierwettbewerben bereitgestellt. |
| ★★★ | Intellij Idee | GUI / plattformübergreifend | Die Intellij -Idee ist sicherlich eine der besten IDES für Java. Es wird von den meisten wettbewerbsfähigen Programmierern verwendet, die Java als Hauptsprache verwenden. Schauen Sie sich CHELPER an, ein sehr praktisches Plugin, das für Programmierwettbewerbe geschrieben wurde. |
| ★★ ☆ | Erhabener Text | GUI / plattformübergreifend | Sublime Text ist ein außergewöhnlicher Texteditor. Mit leistungsstarken und innovativen Funktionen wie mehreren Karos, Minimaps und Kommandopaletten sind sie eine starke und engagierte Gemeinschaft an. Sublime Text ist hoch erweiterbar. Achten Sie also darauf, dass die Paketsteuerung installiert ist und vielleicht einen der größten Katalog von Plugins! |
| ★★ ☆ | Finsternis | GUI / plattformübergreifend | Eclipse ist eine weitere gute Ide für Java. Es ist eine gute Alternative zur Intellij -Idee (ein bisschen minderwertig, die der Idee nach heutigen Maßstäben unterlegen sind). Manchmal bieten Wettbewerbe nur Eclipse aus irgendeinem Grund, daher ist dies möglicherweise ein guter Anreiz, Eclipse zu verwenden. |
| ★★ ☆ | Clion | GUI / plattformübergreifend | Clion, produziert von JetBrains - derselben Firma, die Intellij -Idee gemacht hat, ist eine mächtige IDE für C ++. Kostenlose Bildungslizenzen sind verfügbar oder Sie können ihr EAP (Early Access Program) ausprobieren, das ab April 2018 noch kostenlos ist. Möglicherweise möchten Sie seine Code -Inspektionsfunktion ausschalten, da dies eine gewisse Verzögerung verursacht. |
| ★ ☆☆ | Andere Ides | Gemischt | Visual Studio ist die IDE zu verwenden, falls Sie in C#codieren möchten. ... Sowohl Atom- als auch Visual Studio-Code werden mit Elektronen (in JavaScript geschrieben) und daher etwas Ressourcen-Hogging erstellt. ... Codelite ist eine neu aufstrebende IDE. Achten Sie darauf, dass die Ladungs- und Projekt-Erstellungszeiten außergewöhnlich sein können. |
Persönlicher Gebrauch
| ☆ | Name | Beschreibung |
|---|
| ★★★ | Visualgo | Eine Website mit einer großen Sammlung von Visualisierungstools für Algorithmen und Datenstrukturen. |
| ★★★ | Helfer für allgemeine Praxis: ... Chelper (Intellij Idee) (Handbuch) ... CAIDE (Visual Studio, Codelite, eigenständige Befehlszeilen-App) ... JHelper (Appcode, Clion) Online-Judge-Tools (Stand Alone Alone CLI Tool, es wird aktiv gewartet.) | Tolle Tools, die Wettbewerbe analysieren, Inline -Bibliothekscodes und Test -Frameworks bereitstellen. Sie speichern Sie daran, Ihre kostbare Zeit beim Schalten von Fenstern und das Kopieren von Kopieren hin und her zu verbringen. |
| ★★ ☆ | Codeforces Parsers: ... Codeforces Parser ... GoCF ... CFParser (EMACS) CFParser (CLI) | Diese Tools analysieren Codeforces -Probleme und helfen bei der Ausführung von Beispieltests. |
| ★★★ | Die Online-Enzyklopädie von Ganzzahlsequenzen (OEIS) | Eine atemberaubende Enzyklopädie mit einer Datenbank unzähliger ganzzahliger Sequenzen. Es verfügt auch über eine leistungsstarke Suchmaschine. Manchmal könnte ein scheinbar schwieriges Kombinatorproblem einer einfachen oder untersuchten Ganzzahlsequenz gleichwertig sein. |
| ★★ ☆ | Syntax Highlighters: ... tohtml.com ... markup.su ... hilite.me | Sehr praktisch zum Erstellen von Folien oder Teamnotizen mit hübschen, formatierten Code -Snippets. Kopieren Sie einfach die hervorgehobenen Code-Snippets und fügen Sie sie in Ihren bevorzugten Wysiwyg-Editor (What-You-See-Is-What-You-Get) ein! |
| ★★ ☆ | Codefreigabe: ... ideone.com ... Pastebin.com ... Ubuntu Pastebin | Diese Tools generieren semi-permanente Seiten für die Codefreigabe. Sehr nützlich, besonders wenn Sie versuchen, jemanden dazu zu bringen, Ihren Code zu untersuchen. |
| ★★ ☆ | Unbeschreiblich | Ein einfacher Befehlszeilenklässler für die lokale Einstufung. |
| ★★ ☆ | Udebug | Eine Plattform, die erwartete Ausgaben für benutzerdefinierte Eingaben für Probleme im UVA-Online-Richter bietet. Einige Probleme bieten auch zusätzliche Testfälle für das Debuggen. |
Wettbewerbsvorbereitung
| ☆ | Name | Beschreibung |
|---|
| ★★★ | Polygon | Polygon bietet eine Plattform und eine Reihe von Tools für die Vorbereitung des professionellen Wettbewerbs. ... Ein Beispiel: Validatoren mit testlib.h - Codeforces |
| ★★ ☆ | Graph Editor | Ein fantastisches Tool zum Erstellen und Visualisieren von Grafiken. |
| ★★ ☆ | tcframe | Ein C ++ - Framework zur Generierung von Testfällen von Wettbewerbsproblemen. |
| ★★★ | Virtueller Richter (Vjudge) | Mit Virtual Judge (Vjudge) können Benutzer virtuelle Wettbewerbe mit Problemen aus bemerkenswerten Problemarchiven erstellen. |
| ★★ ☆ | BNU Online -Richter | Mit BNU Online Richter können Benutzer auch virtuelle Wettbewerbe erstellen. |
| ★★ ☆ | Kattis | Kattis hilft bei der Vorbereitung des Wettbewerbs (senden Sie ihnen eine E-Mail für Hilfe). |
Gemeinschaft
Treffen Sie die gottähnlichen Wettbewerbsprogrammierer!
Lernen Sie hilfreiche Tipps, Tutorials und Erkenntnisse dieser Leute :)
Blogs
| Name (Handle) | Blogname |
|---|
| Codeforces Blogs |
| Petr Mitrichev (Petr) | Algorithmen wöchentlich |
| Makoto Soejima (RNG_58) | RNG_58s Blog |
| Bruce Merry (Bmerry) | Entropie nimmt immer zu |
| Przemysław Dębiak (Psyho) | Psyho's Blog |
| Anudeep Nekkanti (ANUDEEP2011) | Namespace Anudeep;) |
| Vexorian (Vexorian) | Vexorians Blog |
| Ashar Fuadi (Fushar) | Fushars Blog |
| Lijie Chen (WJMZBMR) | WJMZBMR (Chinesisch) |
| Huang i-wen (Traum) | 小月的耍廢日誌 (Chinesisch) |
| Shiang-yun Yang (Morris1028) | Morris 'Blog (Chinesisch) |
| Yuhao du (Toodifficuit, Tooimple, Xudyh) | Xudyh (Chinesisch) |
YouTube und Livestreams
| Name (Handle) | Link |
|---|
| Petr Mitrichev (Petr) | YouTube |
| Torlesung von Ravindrababu Ravula | YouTube |
| Mostafa Saad Ibrahim (Mostafa.saad.fci) | Wettbewerbsfähige Programmierung YouTube (arabisch sprachglischer Text) |
| Tushar Roy | YouTube, mit vielen Tutorial -Videos. |
| Geeksforgeeks | YouTube |
| Algorithmen leben! | YouTube |
| Codechef | YouTube |
| Hackerrank | YouTube |
| Ideserve | YouTube |
| code_report | YouTube, mit Wettbewerbs -Updates und Problem -Tutorials von Hackerrank, Leetcode, Topcoder und Codeforces. |
| "Sothe" der Algorithmus Wolf | YouTube |
| Egor Kulikov (Egor) | YouTube |
| Adam Bardashevich (Abonnent) | YouTube |
| Bohdan Pryshchenko (i_love_tanya_romanova) | Zucken, YouTube |
| Vladimir Smykalov (enot.1.10) | Zucken, YouTube |
| Aleksandar Abas (Alex7) | YouTube |
| Mikhail Tikhomirov (Endagorion) | YouTube |
| Kamil Debowski (Errichto) | YouTube |
| David Harmeyer (Second thread) | YouTube, Editorials, hohe Qualtiy -Vorträge (fortgeschrittene Themen) |
| Mycodesschool | YouTube, hochwertige Videos zu grundlegenden Programmierungen, Datenstrukturen und Algorithmen |
| William Lin (Tmwilliamlin168) | YouTube, meistens Ströme, Tipps, aber inspirierend und manchmal aufschlussreich |
| COZENCODE (KAZAMA460) | YouTube, kurze Vorträge, die verschiedene CP -bezogene Themen wie Graphentheorie, Zahlentheorie, DP, erweiterte Datenstrukturen abdecken. |
| Colin Galen (galen_colin) | YouTube, Editorials, Screencasts |
| William Feset | YouTube, hochwertige Videos, die fast alle Datenstrukturen, Algorithmen abdecken |
Quora
Besuchen Sie wettbewerbsfähige Programme - Quora (Top 10 am meisten angesehene Schriftsteller).
| Wichtige Gemeinschaftsfiguren | Beschreibung |
|---|
| Bill Pouner | Geschäftsführer von ACM-ICPC. CS -Professor an der Baylor University. |
| Michal Forišek (Misof) | Organisator von IPSC und IOI. CS -Lehrer an der Comenius University in der Slowakei. Algorithmus und CS -Bildungsforscher. Former highly-rated competitive programmer. |
| Ahmed Aly (ahmed_aly) | Founder of A2OJ. HackerRank Lead Software Engineer. Former member of the Google Code Jam team. |
| 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 TV (razimantv) | |
Other Awesome Resources
Articles
Informative and helpful articles
| Thema |
|---|
| 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 |
FAQs
Fine answers to frequently-asked questions
| Frage |
|---|
| 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 |
| Algorithmen | tayllan/awesome-algorithms |
| Algorithm Visualization | enjalot/algovis |
| Mathe | rossant/awesome-math |
| C ++ | fffaraz/awesome-cpp |
| Java | akullpp/awesome-java |
| Courses | prakhar1989/awesome-courses |
| Free Programming Books | vhf/free-programming-books |
| Community-curated C++ Resources | Hackr.io |
Interviewfragen
| Name | Beschreibung |
|---|
| CareerCup | The most popular website for software engineering interview preparation. |
| InterviewBit | Features intriguing and refreshing game-play designs which are designed to invoke one's interest in practicing. |
| Awesome Interviews | A curated list of awesome interview questions |
| LeetCode | Well-organized website for software engineering interview preparation with best explanined solutions. |
Lizenz
Awesome Competitive Programming is licensed under a Creative Commons Attribution 4.0 International License.