Programmation compétitive impressionnante
Une liste organisée de ressources de programmation, Algorithm et Data Structure Competitive Programming impressionnantes.
Créé en vue de connecter les gens à l'information, cette liste ci-dessous contient une collection complète de toutes les ressources fantastiques que j'ai collectées au cours de ma carrière de programmation compétitive de 11 ans. J'espère que vous le trouverez utile :)
Qu'est-ce que la programmation compétitive? - Quora
Contributif
Veuillez suivre contribuer à contribuer.md pour commencer.
Vous pouvez également contribuer en partageant!
Partagez la liste avec vos camarades de classe, vos amis et tout le monde :)
En connectant plus de personnes à l'information,
Vous ne faites pas moi, mais tout le monde est une énorme faveur!
J'espère vraiment que plus de gens pourront bénéficier de cette liste :)
Table des matières
- Liste des listes
- Programmes
- Sites Web de tutoriel
- Cours ouverts
- Cours ouverts pour les algorithmes et les structures de données
- Livres
- Livres pour les algorithmes | Livres pour les mathématiques
- Sites de pratique
- Classificateurs de problèmes | Calendriers du concours
- Camps et formations
- Sites de questions
- Implémentations
- Spécificiaires de la langue
- Outils
- Ides | Utilisation personnelle | Préparation du concours
- Communauté
- Blogs | YouTube et Livestreams | Quora
- Autres ressources impressionnantes
- Articles | FAQ | Listes impressionnantes | Questions d'entrevue
- Licence
Liste des listes
Listes organisées impressionnantes classées par des sujets.
| ☆ | Nom | Description |
|---|
| ★★★ | Bon blog Ressources sur l'algorithme et les structures de données - Forces de code | Une collection d'articles de blog de tutoriels fantastiques écrits par les utilisateurs de CodeForces. Certains intrigants incluent des arbres palindromiques, des structures de données basées sur les politiques et bien plus encore. |
| ★★★ | Tous les bons tutoriels trouvés sur les forces de code - Forces de code | Une autre bonne collection d'articles de blog de didacticiel écrit par les utilisateurs de CodeForces. |
| ★★★ | Structures de données et algorithmes - CodeChef Discutez | Une liste très complète des ressources de programmation compétitives. Un incontournable dans votre signet de navigateur. |
| ★★★ | Comment se préparer à ACM - ICPC? - geeksforgeeks | Une visite détaillée des préparatifs de l'ACM-ICPC. |
Programmes
Découvrez les sujets que vous devez apprendre.
| ☆ | Nom | Description |
|---|
| ★★★ | Syllabus ioi | Un programme détaillé sur lequel les candidats IOI seront testés. Ceci est encore quelque peu pertinent pour ACM-ICPC. |
| ★★★ | Comment se préparer à ACM - ICPC? - geeksforgeeks | Une visite détaillée des préparatifs de l'ACM-ICPC. |
| ★★ ☆ | Programmation du programme de camp | Une liste de sujets importants en programmation compétitive avec des problèmes d'exercice. |
| ★★ ☆ | Feuille de formation des juniors, par Mosfa Saad Ibrahim | ~ 800 problèmes ordonnés pour que les nouveaux arrivants soient bons jusqu'à div2-d |
Sites Web de tutoriel
Sites Web impressionnants avec d'excellents tutoriels.
| ☆ | Nom | Description |
|---|
| ★★★ | Tutoriels de science des données Topcoder | Une liste de didacticiels écrits par des membres du coder TopCoder respectés. De nombreux programmeurs de haut niveau ont commencé à apprendre les sciences des données à partir d'ici. |
| ★★★ | E-maxx (russe), (anglais) | Un site Web de tutoriel largement utilisé et référencé dans la communauté de programmation compétitive russe. La plupart des articles du site original ont été traduits en anglais, Google Translate fonctionne bien pour les autres. |
| ★★ ☆ | Algorithmes - geeksforgeeks | Un site Web avec une grande archive d'articles bien écrits sur différents sujets. Il s'agit d'une excellente ressource complémentaire pour les cours d'algorithme. |
| ★★ ☆ | Pagan | Un site Web avec des écrits de type wiki incroyables sur de nombreux sujets. C'est bien mieux que ceux de Wikipedia à mon avis. |
| ★★ ☆ | Notes - HackerEarth | Une grande plate-forme de crowdsourcing pour les tutoriels. Visitez également Code Monk. |
| ★★ ☆ | USA Computing Olympiad (USACO) | Contient plusieurs pages de formation sur son site Web qui sont conçues pour développer ses compétences en programmation de solutions à des problèmes algorithmiques difficiles et variés à son rythme. |
| ★★ ☆ | base de base | Un blog avec des tutoriels illustrés en profondeur sur les algorithmes de base et les structures de données. |
| ★★ ☆ | Programmation compétitive - CommonLounge | Courts didacticiels vidéo pour les concepts débutants et intermédiaires. Tutoriels avancés sélectionnés parmi les meilleurs disponibles sur divers blogs CP. |
| ★ ☆☆ | Olympiades en informatique | Une revue internationale s'est concentrée sur la recherche et la pratique des professionnels qui travaillent dans le domaine de l'enseignement et de l'apprentissage de l'informatique à des étudiants talentueux. |
| ★ ☆☆ | algolistes (russe) | Un site Web russe consacré aux algorithmes de toutes sortes. Certains sujets répertoriés sur ce site semblent assez intéressants. |
| ★★ ☆ | 演算法筆記 (Notes d'algorithme) (chinois) | L'un des sites de tutoriels les plus populaires parmi la communauté de programmation compétitive taïwanaise. Le responsable de ce site Web passe d'immenses efforts pour rechercher des algorithmes. |
| ★★ ☆ | 国家集训队论文 1999-2015 (Documents des camps de formation chinois IOI) (chinois) | Documents des camps d'entraînement chinois IOI. C'est intéressant pour le fait que l'on peut dire que différentes régions mettent l'accent sur différentes choses. |
| ★★★ | Mini-éditoriaux, par les stagiaires de Mostafa Saad Ibrahim | Solutions avec mini-éditoriaux pour de nombreux problèmes, y compris les problèmes UVA / SPOJ / IOI / Olympiad |
| ★★ ☆ | Oi Wiki (programmation compétitive) (chinois) | Oi Wiki s'engage à être un site d'intégration de connaissances libre et ouvert à mise à jour en continu (programmation compétitive). Ce wiki est une sorte de compagnon ou de guide pour le programmeur compétitif qui essaie d'apprendre quelque chose |
Cours ouverts
Pensez à commencer votre parcours de programmation compétitif avec ces cours impressionnants!
| ☆ | Nom | Description |
|---|
| ★★ ☆ | Code Monk, par HackerEarth | Un tutoriel étape par étape fantastique sur les sujets essentiels de la programmation compétitive. |
| ★★★ | Stanford CS 97SI: Introduction aux concours de programmation compétitive | Offre des diapositives de conférence complètes et une courte liste de problèmes d'exercice. |
| ★★ ☆ | Comment gagner des compétitions de codage: Secrets of Champions | Un cours de l'Université ITMO sur le codage compétitif sur EDX. |
| ★★ ☆ | Camp de programmation indienne de Codechef | Des conférences vidéo du camp de programmation indien de Codechef 2016. Conférences données par les meilleurs programmeurs compétitifs comme Sergey Kulik, Kevin Charles Atienza et Anudeep Nekkanti. Principalement axé sur l'exploration de ces concepts en les appliquant à des problèmes de concours concurrentiels réels. |
| ★★ ☆ | Reykjavik T-414-áflv: un cours de programmation compétitif | Un cours génial enseigné par Bjarki Ágúst Guðmundssson (Suprdewd). Ces conférences présentent des diapositives soignées et une belle liste de problèmes à pratiquer. |
| ★★ ☆ | NCTU DCP4631: Techniques de résolution de problèmes et de programmation | Un cours sur des sujets de base mettant en vedette de bonnes diapositives de conférence. |
| ★ ☆☆ | Matériaux (anglais) de la programmation de compétition arabe Channel YouTube | Certains matériaux (diapositives et codes source) couvrant une large gamme de sujets algorithmiques de Mosfa Saad Ibrahim. |
Cours ouverts pour les algorithmes et les structures de données
| ☆ | Nom | Description |
|---|
| ★★★ | Prakhar1989 / Awesome-Courses # Algorithms | Une liste fantastique de cours ouverts offerts par des institutions notables (MIT, Stanford, UC Berkeley ... etc.). |
| ★★★ | MIT SMA 5503: Introduction aux algorithmes | Connective par le professeur Charles Leiserson (l'un des co-auteurs de l'introduction aux algorithmes) et le professeur Erik Demaine (un brillant professeur qui a fait des percées remarquables en science des données), le cours offre de grands matériaux, accompagnés d'analyses intuitives et complètes. |
| ★★ ☆ | Cours d'algorithme UIUC | Notes de cours, rédacteurs, examens et problèmes de discussion couvrant un large éventail de sujets algorithmiques |
Livres
Une liste de livres recommandés pour la programmation compétitive.
| ☆ | Nom | Description |
|---|
| ★★ ☆ | Programmation compétitive, par Steven et Felix Halim | Ce livre contient une collection de structures de données pertinentes, d'algorithmes et de conseils de programmation. C'est un livre bien reçu. ... La première édition est gratuite pour le téléchargement (PDF). |
| ★★ ☆ | Défis de programmation: le manuel de formation du concours de programmation, par Steven Skiena et Miguel Revilla | Ce livre comprend plus de 100 défis de programmation, ainsi que la théorie et les concepts clés nécessaires pour les approcher. Les problèmes sont organisés par sujet et complétés par un matériel de tutoriel complet. |
| ★★ ☆ | Manuel du programmeur compétitif, par Antti Laaksonen | Une introduction à la programmation compétitive pour les aspirants candidats à l'IOI et à l'ICPC. Téléchargement gratuit (PDF). |
| ★★ ☆ | Pensée algorithmique: une introduction basée sur des problèmes, par Daniel Zingaro | Un livre qui enseigne les structures de données et les algorithmes en utilisant des problèmes de programmation compétitifs (IOI, USACO, CCC / CCO, etc.). |
| ★★ ☆ | Géométrie informatique: algorithmes et applications, par Mark de Berg, Otfried Cheong, Marc Van Kreveld, Mark Overmars | Il s'agit d'un livre bien écrit qui couvre un large éventail de problèmes de géométrie informatique. |
| ★ ☆☆ | Le Guide de l'auto-stoppeur sur les concours de programmation, par Nite Nimajneb | Ce livre est gratuit pour le téléchargement (PDF). Ce livre couvre divers sujets pertinents pour la programmation compétitive. |
| ★★★ | プログラミングコンテストチャレンジブック (japonais), par 秋葉拓哉, 岩田陽一, 北川宜稔 | Un livre absolument phénoménal. Le contenu, organisé de manière très cohérente, est tout simplement incroyable. ... 培養與鍛鍊程式設計的邏輯腦 : 世界級程式設計大賽的知識、心得與解題分享 (chinois traditionnel) |
| ★★ ☆ | 算法竞赛入门经典 (chinois), par 刘汝佳 | L'art des algorithmes et des concours de programmation (anglais), 打下好基礎 : 程式設計與演算法競賽入門經典 (chinois traditionnel) |
| ★★ ☆ | 算法竞赛入门经典 —— 训练指南 (chinois), par 刘汝佳, 陈锋 | 提升程式設計的解題思考力 ─ 國際演算法程式設計競賽訓練指南 (traditionnel chinois) |
| ★★★ | 算法艺术与信息学竞赛 (chinois), par 刘汝佳, 黄亮 | Un classique ancien. C'est vieux, mais le contenu de ce livre est toujours considéré comme très difficile par rapport aux normes d'aujourd'hui. |
Livres pour les algorithmes
| ☆ | Nom | Description |
|---|
| ★★★ | Introduction aux algorithmes, par Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest et Clifford Stein | Également connu sous le nom de CLRS (tiré des initiales de nom), ce livre est souvent appelé "Bible" pour les algorithmes et les structures de données. C'est l'un des manuels les plus populaires pour les cours d'algorithme universitaire. Ce livre a couvert divers algorithmes et structures de données en détail. L'écriture est plus rigoureuse et peut être difficile pour certains. |
| ★★ ☆ | Conception d'algorithme, par Jon Kleinberg et Éva Tardos | Ce livre tourne autour des techniques de conception d'algorithmes. C'est bien organisé et écrit dans une langue claire et compréhensible. Chaque chapitre est soutenu avec des exemples pratiques et des exercices utiles. Le chapitre sur le flux de réseau est très apprécié par les lots. ... Les diapositives de conférence qui accompagnent le manuel sont disponibles sur son site officiel. |
| ★★ ☆ | Le manuel de conception de l'algorithme, par Steven S. Skiena | Le livre est écrit en texte plus lisible. Certains le trouvent complet que d'autres livres. Vous pouvez également trouver de bonnes ressources (y compris les propres conférences vidéo de l'auteur) sur son site officiel. |
| ★★★ | Algorithmes, par Robert Sedgewick et Kevin Wayne | Ce livre est soigneusement classé, couplé à des explications élaborées et à des illustrations fantastiques. Il est utilisé dans certains camps d'entraînement IOI comme manuel. |
| Algorithmes avancés et structures de données, par Marcello La Rocca | Ce livre fournit une approche différente des algorithmes, équilibrant la théorie avec un angle plus pratique, avec une section par chapitre se concentrant sur la façon d'appliquer des algorithmes aux cas d'utilisation réels qui peuvent être trouvés dans votre travail quotidien ou dans une programmation compétitive; Il présente également un mélange d'algorithmes classiques, avancés et nouveaux. |
| ★★★ | Algorithmes, par Jeff Erickson | Une version électronique gratuite d'un manuel auto-publié sous licence CC par 4.0. Ceci est un livre bien écrit des notes de cours des cours théoriques en informatique à l'Université de l'Illinois. Couvre les principaux paradigmes de retour en arrière, de programmation dynamique, de gourmand et en particulier de graphiques en profondeur. |
| Grocher des structures de données, par Marcello La Rocca | Les structures de données Grokking vous guident soigneusement des structures de données les plus élémentaires comme les tableaux ou les listes liées jusqu'à des structures puissantes comme les graphiques. C'est parfait pour les débutants, et vous n'avez besoin de rien de plus que des mathématiques du secondaire pour commencer. Chaque structure de données que vous rencontrez est livrée avec sa propre implémentation Python complète afin que vous puissiez commencer à expérimenter ce que vous apprenez tout de suite. |
Livres pour les mathématiques
| ☆ | Nom | Description |
|---|
| ★★ ☆ | Mathématiques discrètes et ses applications, par Kenneth H. Rosen | Les mathématiques discrètes sont étroitement pertinentes pour la programmation compétitive. Ce livre fournit des matériaux complets sur un large éventail de sujets, notamment: logiques et épreuves, ensembles, fonctions, séquences, matrices, théorie des nombres, récursivité, comptage, probabilité, graphiques, arbres et alegra booléen pour n'en nommer que quelques-uns. |
| ★★ ☆ | Mathématiques concrètes: Foundation for Computer Science, par Ronald L. Graham, Donald E. Knuth, Oren Patashnik | Le livre offre un aperçu plus approfondi des mathématiques discrètes avec plus d'informations sur des sujets liés aux nombres. |
| ★★ ☆ | Algèbre linéaire et ses applications, par David C. Lay, Steven R. Lay, Judi J. McDonald | Le livre fait un travail brillant pour combler l'écart entre un système physique (pour les scientifiques et les ingénieurs) et un système abstrait (pour les mathématiciens). |
| ★★ ☆ | Introduction à la probabilité, par Charles M. Grinstead, J. Laurie Snell | Il s'agit d'un livre de probabilités d'introduction bien écrit. ... c'est gratuit pour le téléchargement (PDF) (publié sous la licence de documentation gratuite GNU). |
| ★★ ☆ | Comment le résoudre: un nouvel aspect de la méthode mathématique, par G. Polya | Un classique ancien. Dans ce livre, l'auteur fournit un moyen systématique de résoudre les problèmes de manière créative. |
| ★★ ☆ | Comptage et probabilité intermédiaires, par David Patrick | Sujets dans le comptage et la probabilité ByFormer USA Gagnant des Olympiades mathématiques David Patrick, les sujets incluent l'exclusion de l'inclusion, les correspondances 1-1, le principe de pigeon, les attentes constructives, les nombres de fibonacci et le catalan, la récursion, la probabilité conditionnelle, les fonctions de génération, la théorie des graphiques, et bien plus. |
Sites de pratique
Bonnes plates-formes de juges en ligne / concours pour pratiquer.
| ☆ | Nom | Description |
|---|
| ★★★ | Forces codées | CodeForces est l'une des plates-formes de concours les plus populaires. Actuellement entretenu par Saratov State University, il propose des concours réguliers et d'innombrables problèmes originaux impressionnants. De plus, chaque concours fournit des tutoriels utiles immédiats (généralement) écrits par les auteurs eux-mêmes. Les forces de code abritent également une communauté forte et engageante. Dans l'ensemble, on apprendrait et améliorerait énormément ici. |
| ★★★ | Coder top | Topcoder existe depuis 2001. Riche en histoire, il est considéré comme l'une des organisations les plus prestigieuses en matière de compétitions technologiques. Des centaines de SRM ont donné naissance à un problème de problème abondant. Les problèmes ici sont généralement plus difficiles que les autres et le coder Topcoder fait donc appel à de nombreux programmeurs d'élite. Le Topcoder Open (TCO) annuel est également un événement largement discuté. |
| ★★★ | Jam de code Google | Google Code Jam est certainement l'une des compétitions de programmation les plus estimées. La compétition se compose de défis de programmation uniques qui doivent être résolus dans un temps fixe. Les concurrents peuvent utiliser n'importe quel langage de programmation et environnement de développement pour obtenir leurs solutions. |
| ★★★ | Atcoder | Atcoder est une plate-forme de concours nouvelle mais phénoménale créée par une équipe de programmeurs compétitifs japonais très classés. |
| ★★ ☆ | Codechef | CodeChef est une initiative éducative à but non lucratif de Directi. Il s'agit d'une plate-forme de programmation compétitive mondiale et possède une grande communauté de programmeurs qui aident les étudiants et les professionnels à tester et à améliorer leurs compétences de codage. Son objectif est de fournir une plate-forme pour la pratique, la concurrence et l'amélioration des étudiants et des développeurs de logiciels professionnels. En dehors de cela, il vise à tendre la main aux étudiants pendant qu'ils sont jeunes et à inculquer une culture de programmation en Inde. |
| ★★★ | Spoj | La plate-forme SPOJ est centrée sur un système de juge en ligne. Il détient une quantité stupéfiante de problèmes préparés par sa communauté de setteurs de problèmes ou tirés des concours de programmation précédents, dont certains sont de grands problèmes pour la pratique (reportez-vous à la section des classificateurs de problèmes). SPOJ permet également aux utilisateurs avancés d'organiser des concours en vertu de leurs propres règles. |
| ★★ ☆ | Timus | Timus Online Judge est la plus grande archive russe de problèmes de programmation avec le système de jugement automatique. Des problèmes sont principalement collectés dans les concours organisés à l'Université fédérale d'Oural, aux championnats d'Oural, aux concours sous-régionaux de l'Oural ACM ICPC et aux camps d'entraînement de Petrozavodsk. |
| ★ ☆☆ | HDU | HDU est un juge en ligne entretenu par l'Université de Hangzhou Dianzi. Il abrite de nombreux problèmes classiques de la scène chinoise IOI. |
| ★★ ☆ | Juge en ligne Aizu | Aizu Online Judge est une plate-forme de concours et des archives de problèmes organisées par l'Université d'Aizu. Il a beaucoup de grands problèmes dans les compétitions de programmation au Japon. |
| ★★ ☆ | Uva | Une archive de problèmes à l'ancienne / juge en ligne avec une histoire riche. Des milliers de problèmes, dont de nombreux classiques, sont présentés ici. Cependant, il est fortement conseillé de vous entraîner avec euhunt en suivant sa section "Exercice de programmation compétitif". |
| ★★ ☆ | Hackerrank | HackerRank est une entreprise qui se concentre sur des défis de programmation compétitifs pour les consommateurs et les entreprises. Les défis de programmation de Hackerrank peuvent être résolus dans une variété de langages de programmation et courir plusieurs domaines informatiques. |
| ★★ ☆ | Poj | POJ est un juge en ligne avec de nombreux grands problèmes entretenus par l'Université de Pékin. La plupart des programmeurs de compétition chinois ont commencé leur voyage ici. La plate-forme est vraiment datée, donc une compilation mystérieuse et des problèmes d'exécution peuvent survenir. |
| ★★ ☆ | Projet Euler | Project Euler propose un ensemble étonnant de bons problèmes mathématiques. Il héberge également un forum où les gens peuvent discuter. |
| ★ ☆☆ | Pirate | HackerEarth est une entreprise de technologie de démarrage basée à Bangalore, en Inde, qui fournit des solutions de recrutement. |
| ★ ☆☆ | Juge en ligne des Caraïbes | COJ est organisé par l'Université des sciences de l'informatique (UCI, par son acronyme en espagnol), situé à Cuba. Les styles de concours ACM ICPC et progressifs, principalement des Caraïbes et des setters de problèmes d'Amérique latine, ont également des problèmes de classificateur de problèmes et de calendrier de concours. |
| ★★ ☆ | Académie CS | Nouveau dans la scène de programmation compétitive, CS Academy est un juge en ligne en pleine croissance qui organise des compétitions une fois toutes les deux semaines. Il prend en charge le chat en direct, les cours interactifs et un éditeur en ligne intégré (qui fonctionne réellement). |
| ★★ ☆ | Coupe de code russe | Concours de programmation alimentés par Mail.ru Group. La compétition se compose de 3 qualifications, 1 élimination et 1 dernier tour. Pour chaque ronde, les concurrents reçoivent 4 à 8 problèmes qui doivent être résolus dans une durée fixe. |
| ★★ ☆ | Combats de code | Codefights est un site Web pour la pratique de la programmation compétitive et la préparation des entretiens. Il présente des défis quotidiens de difficulté variable, une archive de problèmes et des mini-tournois réguliers (toutes les 15 minutes). Bon pour les débutants. |
| ★★ ☆ | Omegaup (espagnol) | Omegaup est un site Web communautaire pour une formation de programmation compétitive. C'est aussi là que l'Olympiade mexicaine en informatique (Omi: Olimpiada mexicana de information) est hébergée. |
Classificateurs de problèmes
Sites classifiant les problèmes de programmation.
Choisissez une catégorie (par exemple DP) d'intérêt et de problèmes de pratique sur ce sujet.
| ☆ | Nom | Description |
|---|
| ★★★ | Juge en ligne A2 | Mixte |
| ★★★ | Classificateur de problèmes | Spoj |
| ★★ ☆ | Juge en ligne UVA | Livre CP |
| ★ ☆☆ | Tags de codes | CF (DP) |
| ★★ ☆ | Hackerrank | Hackerrank |
| ★★ ☆ | Feuille de formation des juniors, par Mosfa Saad Ibrahim | ~ 800 problèmes ordonnés pour que les nouveaux arrivants soient bons jusqu'à div2-d |
| ★★ ☆ | Lucky 貓的 UVA (ACM) 園地 (chinois) | Uva |
| ★★ ☆ | Archive de problèmes de coder topcoder | Liste des problèmes avec les catégories et les niveaux de complexité |
Calendriers du concours
Calendriers pour les concours de programmation imminents.
(Ne manquez jamais un autre concours!)
| ☆ | Nom | Description |
|---|
| ★★★ | Calendrier du concours de programmation - HackerRank | Exportation du calendrier Google Disponible |
| ★★ ☆ | clist. par | API disponible pour une utilisation |
| ★★ ☆ | Calendrier de codage (application Android) | |
| ★★ ☆ | Calendrier du code | |
| ★★★ | Codehorizon: application iOS, application Android | |
| ★★★ | Calendrier des concours de programmation compétitive | Exportation du calendrier Google Disponible |
Sites de questions
Ce sont de grands sites pour poser des questions.
Collez vos codes sur Ideone, Pastebin ou d'autres sites pour éviter les problèmes de mise en forme.
| ☆ | Nom | Description |
|---|
| ★★★ | Forces codées | Pour des réponses rapides, Codeforces est certainement l'endroit incontournable pour poser des questions sur tout ce qui concerne la concurrence. |
| ★★★ | Programmation compétitive - Quora | Vous obtiendrez généralement des réponses plus élaborées sur Quora, mais vous ne verriez peut-être pas tout de suite vos questions. |
| ★★ ☆ | Échange de pile informatique théorique | Cet endroit est généralement pour les universitaires, alors ne posez pas de questions sur les problèmes de concours ici. |
Camps et formations
Formations et camps en ligne.
| ☆ | Nom | Description |
|---|
| ★★★ | Coaching de résolution de problèmes gratuits en ligne, par Mostafa Saad Ibrahim | Voir les détails du coaching et les commentaires des gens sur sa nature / qualité. |
Implémentations
Implémentations d'algorithme et de structure de données.
| ☆ | Nom | Description |
|---|
| ★★★ | CodeBrary, par Andrey Naumenko (Indy256) | CodeLiBrary contient une grande collection d'implémentations pour les algorithmes et les structures de données en Java et C ++. Vous pouvez également visiter son référentiel GitHub. |
| ★★★ | Spaghetti-source / algorithme, par Takanori Maehara (@tmaehara) | Implémentations de haute qualité de nombreux algorithmes durs et structures de données. |
| ★★★ | KTH-Competitive Programming / KACTL, par Simon Lindholm (Simonlindholm) et al. | Un carnet d'équipe organisé, documenté et testé phénoménal du KTH Royal Institute of Technology. L'un des cahiers d'équipe les plus bien conçus (bibliothèques de concours) que j'ai jamais vues. |
| ★★ ☆ | jaehyunp / stanfordacm | Le cahier d'équipe de Stanford est bien entretenu et les codes à l'intérieur sont de haute qualité. |
| ★★ ☆ | ngthanhtrung23 / acm_notebook_new, par Team Rr Watameda (i_love_hoang_yen, flashmt, nguyenhungtam) de l'Université nationale de Singapour | RR Watameda a représenté l'Université nationale de Singapour pour les finales mondiales de l'ACM-ICPC 2016. Les articles de ce cahier sont assez standard et bien organisés. |
| ★★ ☆ | Bobogei81123 / bcw_codebook, par l'équipe BCW0X1BD2 (Darkhh, Bobogei81123, Step5) de l'Université nationale de Taiwan | BCW0X1BD2 a représenté l'Université nationale de Taiwan pour les finales mondiales ACM-ICPC 2016. Ce carnet contient des implémentations robustes pour les structures de données avancées et les algorithmes. |
| ★ ☆☆ | ForeverBell / ACM-ICPC-Cheat-Sheet, par Foreverbell (ForeverBell) | Un cahier avec quelques structures de données avancées et algorithmes, y compris certains de la scène informatique de Chine. |
| ★ ☆☆ | Igor's Code Archive, par Igor Naverniouk (Abednego) | Un bon cahier d'Igor Naverniouk qui est actuellement ingénieur logiciel chez Google et partie de l'équipe Google Code Jam. |
Spécificiaires de la langue
Langues et autres connaissances diverses.
C / C ++
| ☆ | Nom | Description |
|---|
| ★★ ☆ | Alimenter C ++ avec la bibliothèque de modèles standard - Topcoder: Partie 1, partie 2 | Un tutoriel d'introduction sur les STL de base C ++. |
| ★★ ☆ | Encore une fois sur l'entrée / sortie C ++ - Forces de code | En savoir plus sur les optimisations d'E / S C ++. |
| ★★ ☆ | Astuces C ++ - Forces de code ... Quelles sont les astuces C ++ cool à utiliser dans un concours de programmation? - Quora | Astuces C ++ abondantes pour la programmation compétitive. Notez que certains doivent être utilisés avec soin. |
| ★★★ | C ++ STL: Structures de données basées sur les politiques - Forces de code: Partie 1, partie 2 | Introduction détaillée aux structures de données supplémentaires implémentées dans GNU C ++. La documentation officielle peut être trouvée ici. |
| ★ ☆☆ | C ++ 11 FAQ (anglais, chinois, russe, japonais, coréen) | Une liste de FAQ concernant C ++ 11 collectées et écrites par Bjarne Stroustrup, le créateur de C ++. |
Java
| ☆ | Nom | Description |
|---|
| ★★ ☆ | Comment lire l'entrée dans Java - Tutoriel - Forces de code | Apprenez à lire plus rapidement les entrées. C'est une lecture incontournable pour ceux qui ont l'intention d'utiliser Java pour une programmation compétitive |
| ★★ ☆ | Comment trier les tableaux en java et éviter les forces de code | Quelques conseils sur la façon d'éviter de frapper le pire cas de tri rapide |
| ★★ ☆ | Bignum Arithmetic in Java - Ossurons BigInteger! - Forces de code | Une classe BigInteger personnalisée basique mais plus rapide |
| ★★ ☆ | EZ Collections, EZ Life (nouvelle bibliothèque Java pour concours) - CodeForces | Une bibliothèque Java pour des concours écrits par Alexey Dergunov (Dalex). ArrayList, Arraydeque, Heap, Sort, Hashset, Hashmap, Treeset, Treemap, Treelist et Pair Classes sont implémentées |
Divers
| ☆ | Nom | Description |
|---|
| ★★★ | Bit Twiddling Hacks | Une énorme liste compilée des astuces de manipulation de bits. |
| ★★★ | Comparaison des numéros de points flottants, édition 2012 - ASCII aléatoire | Tout ce que vous devez savoir sur les numéros de points flottants. Une lecture incontournable spécialement pour les sujets de géométrie. |
| ★★ ☆ | Langages de style C orienté objet: C ++, objectif-c, java, c # - une feuille de référence côte à côte | Une feuille de référence côte à côte détaillée pour les syntaxes courantes. |
Outils
Outils impressionnants qui vous faciliteront la vie.
Ides
| ☆ | Nom | Plate-forme | Description |
|---|
| ★★★ | Vim | CLI / Plate-plateforme | VIM est l'un des éditeurs de texte les plus populaires parmi les programmeurs avancés. Il permet à l'édition de texte d'être effectuée très efficacement avec uniquement des frappes. VIM est également très configurable, extensible et s'intègre très bien aux shells (lignes de commande). Le seul revers de VIM est qu'il a une courbe d'apprentissage élevée pour les débutants. |
| ★★★ | Emacs | CLI / Plate-plateforme | Emacs est un autre éditeur de texte populaire (ou environnement de développement pour être plus précis). Le débat sur "VIM contre Emacs" est constamment soulevé en raison de leur popularité. Fondamentalement, Emacs est plus qu'un simple éditeur de texte. Il possède des plugins comme les gestionnaires de fichiers, les navigateurs Web, les clients de courrier et les clients des actualités qui permet aux utilisateurs d'effectuer ces tâches directement dans EMACS. Emacs est "plus lourd" à cause de cela, mais il a sans doute une courbe d'apprentissage relativement plus facile pour les débutants. |
| ★★★ | Manager lointain | Hybride / fenêtres | Far Manager est l'éditeur le plus largement utilisé de la communauté de programmation compétitive RU / CIS. C'est en fait un gestionnaire de fichiers dans ses os nus, mais vous pouvez installer Farcolorer - un plugin de surligneur de syntaxe pour le programmer. Correctement configuré, Far Manager vous permet de naviguer entre les fichiers très efficacement lors de la rédaction de vos codes. |
| ★★★ | Code :: blocs | GUI / PLACHER | Code :: Blocks est l'IDE incontournable pour C / C ++. C'est un IDE à part entière et polyvalent avec de nombreuses grandes fonctionnalités. Code :: Les blocs sont généralement fournis avec VIM dans les concours de programmation. |
| ★★★ | Idée intellij | GUI / PLACHER | Intellij Idea est certainement l'un des meilleurs ides pour Java. Il est utilisé par la plupart des programmeurs compétitifs qui utilisent Java comme langue principale. Assurez-vous de consulter Chelper, un plugin très pratique écrit pour des concours de programmation. |
| ★★ ☆ | Texte sublime | GUI / PLACHER | Le texte sublime est un éditeur de texte extraordinaire. Emballé avec des fonctionnalités puissantes et innovantes comme plusieurs carit, minimaps et palettes de commande, il attire une communauté forte et engageante. Le texte sublime est très extensible, alors assurez-vous d'avoir un contrôle de package installé et d'explorer peut-être l'un des plus grands catalogues de plugins! |
| ★★ ☆ | Éclipse | GUI / PLACHER | Eclipse est un autre bon IDE pour Java. C'est une alternative correcte à Intellij Idea (un peu inférieur à l'idée selon les normes d'aujourd'hui). Parfois, les concours ne fournissent qu'éclipse pour une raison quelconque, donc cela pourrait être une bonne incitation à essayer d'utiliser l'éclipse. |
| ★★ ☆ | Clion | GUI / PLACHER | Clion, produit par JetBrains - la même entreprise qui a fait Intellij Idea, est un IDE puissant pour C ++. Des licences éducatives gratuites sont disponibles ou vous pouvez essayer leur PAE (programme d'accès précoce) qui est toujours gratuit en avril 2018. Vous voudrez peut-être désactiver sa fonction d'inspection de code car il provoquera un peu de décalage. |
| ★ ☆☆ | Autres ides | Mixte | Visual Studio est l'IDE à utiliser au cas où vous souhaitez coder en C #. ... Le code ATOM et Visual Studio est construit avec Electron (écrit en javascript) et donc quelque peu-hogging sur les ressources. ... Codelite est un IDE nouvellement montant. Méfiez-vous que les temps de chargement et de création de projets peuvent être extraordinaires. |
Usage personnel
| ☆ | Nom | Description |
|---|
| ★★★ | Visualgo | Un site Web avec une grande collection d'outils de visualisation pour les algorithmes et les structures de données. |
| ★★★ | Aiders de pratique généraux: ... Chelper (Intellij Idea) (Manuel) ... CAIDE (Visual Studio, Codelite, autonome App De Line) ... Jhelper (Appcode, Clion) en ligne-juge-Tools (outil CLI autonome, il est activement maintenu.) | Excellents outils qui analysent les concours, les codes de bibliothèque en ligne et fournissent des cadres de test. Ils vous évitent de passer votre précieux temps à changer de fenêtre et à copier-et-pied. |
| ★★ ☆ | CodeForces Analyrs: ... CodeForces Parser ... GOCF ... CFPARSER (EMACS) CFPARSER (CLI) | Ces outils analysent les problèmes de concours de codes et aident à exécuter des exemples de tests. |
| ★★★ | L'encyclopédie en ligne des séquences entières (OEIS) | Une superbe encyclopédie avec une base de données d'innombrables séquences entières. Il dispose également d'un puissant moteur de recherche. Parfois, un problème de combinatoire apparemment difficile pourrait être équivalent à une séquence entière simple ou étudiée. |
| ★★ ☆ | Highlighters de syntaxe: ... tohtml.com ... markup.su ... hilite.me | Très pratique pour créer des diapositives ou des cahiers d'équipe avec de jolis extraits de code formatés. Copiez simplement les extraits de code en surbrillance et collez-les dans votre éditeur préféré de Wysiwyg (ce que vous êtes-vous-vous-vous-vous)! |
| ★★ ☆ | Partage de code: ... ideone.com ... pastebin.com ... Ubuntu Pastebin | Ces outils génèrent des pages semi-permanentes pour le partage de code. Très utile surtout lorsque vous essayez d'amener quelqu'un d'autre à examiner votre code. |
| ★★ ☆ | Ineffable | Une note de ligne de commande simple pour le classement local. |
| ★★ ☆ | udebug | Une plate-forme qui fournit des sorties attendues pour les entrées spécifiées par l'utilisateur aux problèmes sur le juge UVA en ligne. Certains problèmes fournissent également des cas de test supplémentaires pour le débogage. |
Préparation du concours
| ☆ | Nom | Description |
|---|
| ★★★ | polygone | Polygon fournit une plate-forme et un riche ensemble d'outils pour la préparation des concours professionnels. ... un exemple: validateurs avec testlib.h - Forces de code |
| ★★ ☆ | Rédacteur en chef | Un outil fantastique pour créer et visualiser les graphiques. |
| ★★ ☆ | tcframe | Un cadre C ++ pour générer des cas de test de problèmes de programmation compétitifs. |
| ★★★ | Juge virtuel (vjudge) | Virtual Judge (VJudge) permet aux utilisateurs de créer des concours virtuels avec des problèmes à partir d'archives de problèmes notables. |
| ★★ ☆ | Juge en ligne BNU | BNU Online Judge permet également aux utilisateurs de créer des concours virtuels. |
| ★★ ☆ | Kattis | Kattis aide à la préparation du concours (par e-mail pour obtenir de l'aide). |
Communauté
Rencontrez les programmeurs compétitifs semblables à Dieu!
Apprenez des conseils utiles, des tutoriels et des idées de ces personnes :)
Blogs
| Nom (poignée) | Nom de blog |
|---|
| Blogs CodeForces |
| Petr Mitrichev (Petr) | Algorithmes chaque semaine |
| Makoto Soejima (RNG_58) | Blog de RNG_58 |
| Bruce Merry (BMerry) | L'entropie augmente toujours |
| Przemysław dębiak (psyho) | Blog de Psyho |
| Anudeep nekkanti (anudeep2011) | Espace de noms anudeep;) |
| vexorien (vexorien) | Blog de Vexorian |
| Ashar Fuadi (Fushar) | Blog de Fushar |
| Lijie Chen (WJMZBMR) | Wjmzbmr (chinois) |
| Huang I-wen (Dreamoon) | 小月的耍廢日誌 (chinois) |
| Shiang-yun Yang (Morris1028) | Blog de Morris (chinois) |
| Yuhao du (Toodifficuit, toosimple, xidyh) | xudyh (chinois) |
YouTube et Livestreams
| Nom (poignée) | Lien |
|---|
| Petr Mitrichev (Petr) | Youtube |
| Conférences de porte de Ravindrababu Ravula | Youtube |
| Mostafa Saad Ibrahim (Mosfa.saad.fci) | Programmation compétitive YouTube (Text de la parole arabe-anglais) |
| Tushar Roy | YouTube, avec de nombreuses vidéos de tutoriel. |
| Geeksforgeeks | Youtube |
| Les algorithmes en direct! | Youtube |
| Codechef | Youtube |
| Hackerrank | Youtube |
| Ideserve | Youtube |
| Code_Report | YouTube, avec des mises à jour du concours et des tutoriels de problème de HackerRank, Leetcode, Topcoder et CodeForces. |
| "Sothe" l'algorithme Wolf | Youtube |
| Egor Kulikov (Egor) | Youtube |
| Adam Bardashevich (abonné) | Youtube |
| Bohdan Pryshchenko (i_love_tanya_romanova) | Twitch, YouTube |
| Vladimir Smykalov (Enot.1.10) | Twitch, YouTube |
| Aleksandar Abas (Alex7) | Youtube |
| Mikhail Tikhomirov (endagorion) | Youtube |
| Kamil Debowski (Errichto) | Youtube |
| David Harmeyer (Secondthread) | YouTube, éditoriaux, conférences élevées (sujets avancés) |
| Mycodeschool | YouTube, vidéos de haute qualité sur la programmation de base, les structures de données et les algorithmes |
| William Lin (tmwilliamlin168) | YouTube, principalement des ruisseaux, des conseils mais inspirant et parfois perspicace |
| Codencode (Kazama460) | YouTube, de courtes conférences couvrant divers sujets liés au CP comme la théorie des graphiques, la théorie des nombres, DP, les structures de données avancées. |
| Colin Galen (Galen_Colin) | YouTube, éditoriaux, screencasts |
| William Feset | YouTube, des vidéos de haute qualité couvrant presque toutes les structures de données, les algorithmes |
Quora
Visitez la programmation compétitive - Quora (Top 10 des écrivains les plus consultés).
| Figures communautaires importantes | Description |
|---|
| Pochette | Directeur exécutif de ACM-ICPC. Professeur CS à l'Université Baylor. |
| Michal Forišek (Misof) | Organisateur d'IPSC et IOI. CS Enseignant à l'Université Comenius en Slovaquie. Algorithme et chercheur en éducation CS. Ancien programmeur compétitif très classé. |
| 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
| Sujet |
|---|
| 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 |
FAQ
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
| Nom | Lien |
|---|
| 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ématiques | rossant/awesome-math |
| C++ | fffaraz/awesome-cpp |
| Java | akullpp/awesome-java |
| Cours | prakhar1989/awesome-courses |
| Free Programming Books | vhf/free-programming-books |
| Community-curated C++ Resources | Hackr.io |
Interview Questions
| Nom | Description |
|---|
| 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. |
Licence
Awesome Competitive Programming is licensed under a Creative Commons Attribution 4.0 International License.