Impresionante programación competitiva
Una lista curada de la increíble Competitive Programming , Algorithm y recursos Data Structure .
Creado con el fin de conectar a las personas con la información, esta lista a continuación contiene una colección completa de todos los recursos fantásticos que he recopilado en el transcurso de mi carrera de programación competitiva de 11 años. Espero que lo encuentres útil :)
¿Qué es la programación competitiva? - Quora
Que contribuye
Por favor, siga por favor contribuyendo.md para comenzar.
¡También puedes contribuir compartiendo!
Comparte la lista con tus compañeros de clase, tus amigos y todos :)
Conectando a más personas con información,
Tú no estoy haciendo yo, ¡pero todos son un gran favor!
Realmente espero que más personas puedan beneficiarse de esta lista :)
Tabla de contenido
- Lista de listas
- Planes de estudios
- Sitios web de tutorial
- Cursos abiertos
- Abrir cursos para algoritmos y estructuras de datos
- Libros
- Libros para algoritmos | Libros para matemáticas
- Sitios para la práctica
- Clasificadores de problemas | Calendarios del concurso
- Campamentos y entrenamientos
- Sitios para preguntas
- Implementación
- Detalles del idioma
- C/C ++ | Java | Misceláneas
- Herramientas
- IDES | Uso personal | Preparación del concurso
- Comunidad
- Blogs | YouTube y transmisión en vivo | Quora
- Otros recursos impresionantes
- Artículos | Preguntas frecuentes | Listas impresionantes | Preguntas de entrevista
- Licencia
Lista de listas
Impresionantes listas curadas clasificadas por temas.
| ☆ | Nombre | Descripción |
|---|
| ★★★ | Buenos recursos de publicaciones de blog sobre algoritmo y estructuras de datos - Codeforces | Una colección de fantásticas publicaciones de blog tutoriales escritas por usuarios de CodeForces. Algunos intrigantes incluyen árboles palindrómicos, estructuras de datos basadas en políticas y mucho más. |
| ★★★ | Todos los buenos tutoriales que se encuentran en CodeForces - CodeForces | Otra buena colección de publicaciones de blog tutoriales escritas por usuarios de CodeForces. |
| ★★★ | Estructuras y algoritmos de datos - CodeChef discutir | Una lista muy completa de recursos de programación competitivos. Un imprescindible en el marcador de su navegador. |
| ★★★ | ¿Cómo prepararse para ACM - ICPC? - Geeksforgeeks | Un recorrido detallado de las preparaciones para ACM-ICPC. |
Planes de estudios
Descubra qué temas necesitas aprender.
| ☆ | Nombre | Descripción |
|---|
| ★★★ | Plan de estudios IOI | Se probará un plan de estudios detallado sobre el cual se analizará los concursantes de IOI. Esto sigue siendo algo relevante para ACM-ICPC. |
| ★★★ | ¿Cómo prepararse para ACM - ICPC? - Geeksforgeeks | Un recorrido detallado de las preparaciones para ACM-ICPC. |
| ★★ ☆ | Programa de programación del campamento | Una lista de temas importantes en la programación competitiva con problemas de ejercicio. |
| ★★ ☆ | Hoja de entrenamiento de Juniors, de Mostafa Saad Ibrahim | ~ 800 problemas ordenados para que los recién llegados sean buenos hasta Div2-D |
Sitios web de tutorial
Sitios web impresionantes con excelentes tutoriales.
| ☆ | Nombre | Descripción |
|---|
| ★★★ | Tutoriales de ciencia de datos de Topcoder | Una lista de tutoriales escritos por miembros respetados de Topcoder. Muchos programadores principales comenzaron a aprender ciencias de datos desde aquí. |
| ★★★ | E-Maxx (ruso), (inglés) | Un sitio web tutorial ampliamente utilizado y referenciado en la comunidad de programación competitiva de habla rusa. La mayoría de los artículos del sitio original se han traducido al inglés, Google Translate funciona bien para los restantes. |
| ★★ ☆ | Algoritmos - Geeksforgeeks | Un sitio web con un gran archivo de artículos bien escritos sobre diferentes temas. Es un gran recurso de cortesía para los cursos de algoritmo. |
| ★★ ☆ | Pegwiki | Un sitio web con sorprendentes escritos en forma de wiki en muchos temas. Es mucho mejor que los de Wikipedia en mi opinión. |
| ★★ ☆ | Notas - Hackerearth | Una gran plataforma de crowdsourcing para tutoriales. También visite Code Monk. |
| ★★ ☆ | Olimpiada de la Computación de EE. UU. (Usaco) | Contiene varias páginas de capacitación en su sitio web que están diseñadas para desarrollar las habilidades de uno en las soluciones de programación a problemas algorítmicos difíciles y variados a su propio ritmo. |
| ★★ ☆ | basecas | Un blog con tutoriales ilustrados en profundidad sobre algoritmos básicos y estructuras de datos. |
| ★★ ☆ | Programación competitiva - CommonLounge | Video tutoriales cortos para conceptos para principiantes e intermedios. Tutoriales avanzados seleccionados de los mejores disponibles en varios blogs de CP. |
| ★ ☆☆ | Olimpiadas en informática | Una revista internacional se centró en la investigación y la práctica de los profesionales que trabajan en el campo de la enseñanza y el aprendizaje de la informática a un estudiante talentoso. |
| ★ ☆☆ | algolista (ruso) | Un sitio web ruso dedicado a algoritmos de todo tipo. Algunos temas enumerados en este sitio web parecen bastante interesantes. |
| ★★ ☆ | 演算法筆記 (notas de algoritmo) (chino) | Uno de los sitios web tutoriales más populares entre la comunidad de programación competitiva taiwanesa. El mantenedor de este sitio web gasta inmensos esfuerzos en investigar algoritmos. |
| ★★ ☆ | 国家集训队论文 1999-2015 (documentos de campos de entrenamiento de IOI chinos) (chino) | Documentos de los campos de entrenamiento de IOI chinos. Es interesante por el hecho de que uno puede decir que diferentes regiones enfatizan cosas diferentes. |
| ★★★ | Mini editoriales, por los aprendices de Mostafa Saad Ibrahim | Soluciones con mini editoriales para muchos problemas, incluidos los problemas de UVA/Spoj/IOI/Olympiad |
| ★★ ☆ | Oi wiki (programación competitiva) (chino) | Oi Wiki se compromete a ser un sitio de integración de conocimiento de conocimiento de programación (programación competitiva) gratuito y abierto. Este wiki es una especie de compañero o guía para el programador competitivo que está tratando de aprender algo |
Cursos abiertos
¡Considere comenzar su viaje de programación competitiva con estos increíbles cursos!
| ☆ | Nombre | Descripción |
|---|
| ★★ ☆ | Code Monk, por Hackerearth | Un fantástico tutorial paso a paso sobre los temas esenciales en la programación competitiva. |
| ★★★ | Stanford CS 97SI: Introducción a concursos de programación competitivos | Ofrece diapositivas integrales de conferencias y una breve lista de problemas de ejercicio. |
| ★★ ☆ | Cómo ganar concursos de codificación: secretos de campeones | Un curso de la Universidad ITMO sobre codificación competitiva en EDX. |
| ★★ ☆ | Campamento de programación indio de CodeChef | Video conferencias del campamento de programación indio de CodeChef 2016. Conferencias dadas por los principales programadores competitivos como Sergey Kulik, Kevin Charles Atienza y Anudeep Nekkanti. Se centró principalmente en explorar estos conceptos aplicándolos a problemas reales del concurso competitivos. |
| ★★ ☆ | Reykjavik T-414-áflv: un curso de programación competitivo | Un curso impresionante impartido por Bjarki Ágúst Guðmundsson (Suprdewd). Estas conferencias cuentan con diapositivas ordenadas y una buena lista de problemas para practicar. |
| ★★ ☆ | NCTU DCP4631: Técnicas de resolución y programación de problemas | Un curso de temas básicos con buenas conferencias. |
| ★ ☆☆ | Materiales (inglés) del canal de YouTube de la programación competitiva árabe | Algunos materiales (diapositivas y códigos de origen) que cubren una amplia gama de temas algorítmicos de Mostafa Saad Ibrahim. |
Abrir cursos para algoritmos y estructuras de datos
| ☆ | Nombre | Descripción |
|---|
| ★★★ | prakhar1989/algoritmos de#cursos impresionantes | Una lista fantástica de cursos abiertos ofrecidos por instituciones notables (MIT, Stanford, UC Berkeley ... etc.). |
| ★★★ | MIT SMA 5503: Introducción a los algoritmos | Conferencia por el Prof. Charles Leiserson (uno de los coautores de Introducción a los algoritmos) y el Prof. Erik Demaine (un brillante profesor que ha realizado avances notables en la ciencia de datos), el curso ofrece excelentes materiales, acompañados de análisis intuitivos e integrales. |
| ★★ ☆ | Curso de algoritmo de UIUC | Notas de conferencias, tareas, exámenes y problemas de discusión que cubren una amplia gama de temas algorítmicos |
Libros
Una lista de libros recomendados para programación competitiva.
| ☆ | Nombre | Descripción |
|---|
| ★★ ☆ | Programación competitiva, de Steven y Felix Halim | Este libro contiene una colección de estructuras de datos relevantes, algoritmos y consejos de programación. Es un libro bien recibido. ... La primera edición es gratuita para descargar (PDF). |
| ★★ ☆ | Desafíos de programación: Manual de entrenamiento del concurso de programación, de Steven Skiena y Miguel Revilla | Este libro incluye más de 100 desafíos de programación, así como la teoría y los conceptos clave necesarios para abordarlos. Los problemas se organizan por tema y se complementan con material tutorial completo. |
| ★★ ☆ | Manual del programador competitivo, de Antti Laaksonen | Una introducción a la programación competitiva para los aspirantes a concursantes de IOI e ICPC. Gratis para descargar (pdf). |
| ★★ ☆ | Pensamiento algorítmico: una introducción basada en problemas, de Daniel Zingaro | Un libro que enseña estructuras de datos y algoritmos utilizando problemas de programación competitivos (IOI, USACO, CCC/CCO, etc.). |
| ★★ ☆ | Geometría computacional: algoritmos y aplicaciones, por Mark de Berg, Otfried Cheong, Marc Van Keveld, Mark Overmars | Este es un libro bien escrito que cubre una amplia gama de problemas de geometría computacional. |
| ★ ☆☆ | La Guía de Hitchhiker para los concursos de programación, de Nite Nimajneb | Este libro es gratis para descargar (PDF). Este libro cubre varios temas relevantes para la programación competitiva. |
| ★★★ | プログラミングコンテストチャレンジブック (japonés), por 秋葉拓哉, 岩田陽一, 北川宜稔 | Un libro absolutamente fenomenal. El contenido, organizado de una manera muy coherente, son sorprendentes. ... 培養與鍛鍊程式設計的邏輯腦 : 世界級程式設計大賽的知識、心得與解題分享 (tradicional chino) |
| ★★ ☆ | 算法竞赛入门经典 (chino), por 刘汝佳 | El arte de los algoritmos y los concursos de programación (inglés), : : 程式設計與演算法競賽入門經典 (tradicional chino) |
| ★★ ☆ | 算法竞赛入门经典 —— 训练指南 (chino), por 刘汝佳, 陈锋 | 提升程式設計的解題思考力 ─ 國際演算法程式設計競賽訓練指南 (tradicional chino) |
| ★★★ | 算法艺术与信息学竞赛 (chino), por 刘汝佳, 黄亮 | Un clásico de antaño. Es antiguo, pero los contenidos en este libro todavía se consideran muy difíciles para los estándares actuales. |
Libros para algoritmos
| ☆ | Nombre | Descripción |
|---|
| ★★★ | Introducción a los algoritmos, por Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest y Clifford Stein | También conocido como CLR (tomado de las iniciales de nombre), este libro a menudo se conoce como la "Biblia" para algoritmos y estructuras de datos. Es uno de los libros de texto más populares para los cursos de algoritmos universitarios. Este libro cubrió varios algoritmos y estructuras de datos con gran detalle. La escritura es más rigurosa y puede ser difícil para algunos. |
| ★★ ☆ | Diseño de algoritmo, de Jon Kleinberg y Éva Tardos | Este libro gira en torno a las técnicas para diseñar algoritmos. Está bien organizado y está escrito en un lenguaje claro y comprensible. Cada capítulo está respaldado con ejemplos prácticos y ejercicios útiles. El capítulo sobre el flujo de red es muy elogiado por los lotes. ... Las diapositivas de conferencias que acompañan al libro de texto están disponibles en su sitio web oficial. |
| ★★ ☆ | El manual de diseño de algoritmo, de Steven S. Skiena | El libro está escrito en texto más legible. Algunos lo encuentran completo que otros libros. También puede encontrar algunos buenos recursos (incluidas las propias conferencias de video del autor) en su sitio web oficial. |
| ★★★ | Algoritmos, de Robert Sedgewick y Kevin Wayne | Este libro está perfectamente categorizado, junto con explicaciones elaboradas e ilustraciones fantásticas. Se usa en algunos campos de entrenamiento IOI como libro de texto. |
| Algoritmos avanzados y estructuras de datos, por Marcello La Rocca | Este libro proporciona un enfoque diferente a los algoritmos, equilibrando la teoría con un ángulo más práctico, con una sección por capítulo centrada en cómo aplicar algoritmos a casos de uso del mundo real que se pueden encontrar en su trabajo diario o en programación competitiva; También presenta una mezcla de algoritmos clásicos, avanzados y nuevos. |
| ★★★ | Algoritmos, de Jeff Erickson | Una versión electrónica gratuita de un libro de texto autoeditado con licencia bajo CC por 4.0. Este es un libro bien escrito de las notas de conferencias de cursos teóricos de informática en la Universidad de Illinois. Cubre los principales paradigmas de retroceso, programación dinámica, codicioso y particularmente gráficos en profundidad. |
| Estructuras de datos de Grokking, de Marcello La Rocca | Las estructuras de datos de Grokking lo guían cuidadosamente desde las estructuras de datos más básicas como matrices o listas vinculadas hasta estructuras potentes como gráficos. Es perfecto para principiantes, y no necesitarás nada más que matemáticas de secundaria para comenzar. Cada estructura de datos que encuentra viene con su propia implementación completa de Python para que pueda comenzar a experimentar con lo que aprende de inmediato. |
Libros para matemáticas
| ☆ | Nombre | Descripción |
|---|
| ★★ ☆ | Matemáticas discretas y sus aplicaciones, por Kenneth H. Rosen | Las matemáticas discretas son estrechamente relevantes para la programación competitiva. Este libro proporciona materiales completos sobre una amplia gama de temas que incluyen: lógicas y pruebas, conjuntos, funciones, secuencias, matrices, teoría de números, recursión, conteo, probabilidad, gráficos, árboles y boolean Alegra, por nombrar solo algunos. |
| ★★ ☆ | Matemáticas de concreto: una base para la informática, de Ronald L. Graham, Donald E. Knuth, Oren Patashnik | El libro ofrece una visión más profunda de las matemáticas discretas con más énfasis en los temas relacionados con el número. |
| ★★ ☆ | Álgebra lineal y sus aplicaciones, por David C. Lay, Steven R. Lay, Judi J. McDonald | El libro hace un trabajo brillante al cerrar la brecha entre un sistema físico (para científicos e ingenieros) y un sistema abstracto (para matemáticos). |
| ★★ ☆ | Introducción a la probabilidad, por Charles M. Grinstead, J. Laurie Snell | Este es un libro de probabilidades introductorio bien escrito. ... Es gratuito para descargar (PDF) (lanzado bajo la licencia de documentación gratuita de GNU). |
| ★★ ☆ | Cómo resolverlo: un nuevo aspecto del método matemático, de G. Polya | Un clásico de antaño. En este libro, el autor proporciona una forma sistemática de resolver problemas de manera creativa. |
| ★★ ☆ | Conteo intermedio y probabilidad, por David Patrick | Temas en el conteo y la probabilidad del formador de la Olimpiada Matemática de los Estados Unidos David Patrick, los temas incluyen la exclusión de inclusión, correspondencias 1-1, el principio de paloma, expectativa constructiva, fibonacci y números catalán, recursión, probabilidad condicional, funciones generadoras, teoría de grafos y mucho más. |
Sitios para la práctica
Buenas plataformas de sistemas / concursos de jueces en línea para practicar.
| ☆ | Nombre | Descripción |
|---|
| ★★★ | Codeforces | CodeForces es una de las plataformas de concurso más populares que existen. Actualmente mantenido por la Universidad Estatal de Saratov, presenta concursos regulares e innumerables problemas originales impresionantes. Además, cada concurso proporciona tutoriales útiles inmediatos (generalmente) escritos por los propios autores. CodeForces también alberga una comunidad fuerte y atractiva. En general, uno aprendería y mejoraría tremendamente aquí. |
| ★★★ | Codificador | Topcoder ha existido desde 2001. Rico en la historia, se considera una de las organizaciones más prestigiosas cuando se trata de competiciones de tecnología. Cientos de SRM dieron a luz un conjunto de problemas abundantes. Los problemas aquí suelen ser más desafiantes que otros y, por lo tanto, Topcoder atrae a muchos programadores de élite. El Topcoder Open anual (TCO) también es un evento ampliamente discutido. |
| ★★★ | Jam de código de Google | Google Code Jam es sin duda una de las competiciones de programación más altamente estestimadas. La competencia consiste en desafíos de programación únicos que deben resolverse en una cantidad fija de tiempo. Los competidores pueden usar cualquier lenguaje de programación y entorno de desarrollo para obtener sus soluciones. |
| ★★★ | Acoder | Atcoder es una plataforma de concurso nueva pero fenomenal creada por un equipo de programadores competitivos japoneses altamente calificados. |
| ★★ ☆ | CodeChef | CodeChef es una iniciativa educativa sin fines de lucro de Directi. Es una plataforma de programación competitiva global y tiene una gran comunidad de programadores que ayuda a los estudiantes y profesionales a probar y mejorar sus habilidades de codificación. Su objetivo es proporcionar una plataforma para la práctica, la competencia y la mejora tanto para los estudiantes como para los desarrolladores de software profesionales. Además de esto, su objetivo es llegar a los estudiantes mientras son jóvenes e inculcan una cultura de programación en la India. |
| ★★★ | Spoj | La plataforma Spoj se centra en un sistema de jueces en línea. Tiene una cantidad asombrosa de problemas preparados por su comunidad de establecedores de problemas o tomados de concursos de programación anteriores, algunos de los cuales son grandes problemas para la práctica (consulte la sección Clasificadores de problemas). Spoj también permite a los usuarios avanzados organizar concursos bajo sus propias reglas. |
| ★★ ☆ | TIMUS | Timus Online Judge es el archivo ruso más grande de problemas de programación con el sistema de jueces automáticos. Los problemas se recopilan principalmente de los concursos celebrados en la Universidad Federal de Ural, los campeonatos de Ural, los concursos subregionales de URAL ACM ICPC y los campos de entrenamiento de Petrozavodsk. |
| ★ ☆☆ | Hdu | HDU es un juez en línea mantenido por la Universidad Hangzhou Dianzi. Es el hogar de muchos problemas clásicos de la escena de IOI chino. |
| ★★ ☆ | Juez en línea de Aizu | El juez en línea de Aizu es una plataforma de concurso y un archivo de problemas organizado por la Universidad de Aizu. Tiene muchos problemas geniales de las competiciones de programación en Japón. |
| ★★ ☆ | UVA | Un archivo de problemas de la vieja escuela / juez en línea con rica historia. Miles de problemas, incluidos muchos clásicos, se presentan aquí. Sin embargo, se recomienda encarecidamente que practique con Uhunt después de su sección de "ejercicio de programación competitiva". |
| ★★ ☆ | Truco | Hackerrank es una compañía que se centra en desafíos de programación competitivos tanto para los consumidores como para las empresas. Los desafíos de programación de Hackerrank se pueden resolver en una variedad de lenguajes de programación y abarcan múltiples dominios de informática. |
| ★★ ☆ | Poj | POJ es un juez en línea con muchos problemas excelentes mantenidos por la Universidad de Pekín. La mayoría de los programadores competitivos chinos comenzaron su viaje aquí. La plataforma está realmente fechada, por lo que pueden ocurrir problemas misteriosos de compilación y tiempo de ejecución. |
| ★★ ☆ | Proyecto Euler | Project Euler presenta un impresionante conjunto de buenos problemas matemáticos. También alberga un foro donde la gente puede discutir. |
| ★ ☆☆ | Hackerearth | Hackerearth es una empresa de tecnología de inicio con sede en Bangalore, India, que proporciona soluciones de reclutamiento. |
| ★ ☆☆ | Juez en línea del Caribe | COJ es organizado por la Universidad de Ciencias de la Informática (UCI, por su acrónimo en español), ubicado en Cuba. Cuenta con estilos de concurso ACM ICPC y progresivo, principalmente de los establecedores de problemas caribeños y latinoamericanos, también tiene un clasificador de problemas y un calendario de concursos. |
| ★★ ☆ | Academia CS | Nuevo en la escena de programación competitiva, CS Academy es un juez en línea creciente que organiza competiciones una vez cada dos semanas. Admite chat en vivo, lecciones interactivas y un editor en línea integrado (que realmente funciona). |
| ★★ ☆ | Copa del código ruso | Competiciones de programación impulsadas por Mail.ru Group. La competencia consta de 3 calificación, 1 eliminación y 1 rondas finales. Para cada ronda, los concursantes reciben 4-8 problemas que deben resolverse en una cantidad fija de tiempo. |
| ★★ ☆ | Codefights | CodeFights es un sitio web para la práctica de programación competitiva y la preparación de entrevistas. Cuenta con desafíos diarios de dificultades diferentes, un archivo de problemas y mini torneos regulares (cada 15 minutos). Bueno para principiantes. |
| ★★ ☆ | Omegaup (español) | Omegaup es un sitio web basado en la comunidad para capacitación de programación competitiva. También es donde se aloja la Olimpiada mexicana en Informática (OMI: Olimpuerada mexicana de Informática). |
Clasificadores de problemas
Sitios que clasifican problemas de programación.
Elija una categoría (por ejemplo, DP) de problemas de interés y práctica sobre ese tema.
| ☆ | Nombre | Descripción |
|---|
| ★★★ | A2 Juez en línea | Mezclado |
| ★★★ | Clasificador de problemas | Spoj |
| ★★ ☆ | Juez en línea de UVA | Libro de CP |
| ★ ☆☆ | Etiquetas de CodeForces | CF (DP) |
| ★★ ☆ | Truco | Truco |
| ★★ ☆ | Hoja de entrenamiento de Juniors, de Mostafa Saad Ibrahim | ~ 800 problemas ordenados para que los recién llegados sean buenos hasta Div2-D |
| ★★ ☆ | Lucky 貓的 Uva (ACM )園地 (chino) | UVA |
| ★★ ☆ | Archivo de problemas de Topcoder | Lista de problemas con categorías y niveles de complejidad |
Calendarios del concurso
Calendarios para concursos de programación inminentes.
(¡Nunca te pierdas otro concurso!)
| ☆ | Nombre | Descripción |
|---|
| ★★★ | Calendario del concurso de programación - Hackerrank | Exportación de calendario de Google disponible |
| ★★ ☆ | Clist.by | API disponible para su uso |
| ★★ ☆ | Calendario de codificación (aplicación Android) | |
| ★★ ☆ | Calendario del codificador: aplicación Android, extensión de Chrome, complemento de Firefox | |
| ★★★ | CodeHorizon: aplicación iOS, aplicación Android | |
| ★★★ | Calendario de concursos de programación competitivos | Exportación de calendario de Google disponible |
Sitios para preguntas
Estos son excelentes sitios para hacer preguntas.
Pegue sus códigos en ideona, pastebina u otros sitios para evitar problemas de formato.
| ☆ | Nombre | Descripción |
|---|
| ★★★ | Codeforces | Para respuestas rápidas, CodeForces es definitivamente el lugar favorito para preguntar sobre cualquier cosa relacionada con la competencia. |
| ★★★ | Programación competitiva - Quora | Por lo general, obtendrá respuestas más elaboradas sobre Quora, pero es posible que no tenga sus preguntas respondidas de inmediato. |
| ★★ ☆ | Intercambio teórico de la pila de informática | Este lugar es generalmente para los académicos, así que no hagas preguntas sobre los problemas del concurso aquí. |
Campamentos y entrenamientos
Entrenamientos y campamentos en línea.
| ☆ | Nombre | Descripción |
|---|
| ★★★ | Coaching de resolución de problemas gratuitos en línea, por Mostafa Saad Ibrahim | Vea los detalles del entrenamiento y los comentarios de las personas sobre su naturaleza/calidad. |
Implementación
Implementaciones de algoritmo y estructura de datos.
| ☆ | Nombre | Descripción |
|---|
| ★★★ | Codelibrary, por Andrey Naumenko (Indy256) | CodeLibrary contiene una gran colección de implementaciones para algoritmos y estructuras de datos en Java y C ++. También puede visitar su repositorio de GitHub. |
| ★★★ | Spaghetti-Source/Algoritmo, por Takanori Maehara (@tmaehara) | Implementaciones de alta calidad de muchos algoritmos duros y estructuras de datos. |
| ★★★ | KTH-Competitive Programming/Kactl, por Simon Lindholm (Simonlindholm) et al. | Un cuaderno de equipo fenomenalmente organizado, documentado y probado del KTH Royal Institute of Technology. Uno de los cuadernos del equipo (bibliotecas del concurso) más bien elaborados que he visto. |
| ★★ ☆ | Jaehyunp/Stanfordacm | El cuaderno del equipo de Stanford está bien mantenido y los códigos dentro son de alta calidad. |
| ★★ ☆ | ngthanhtrung23/acm_notebook_new, por el equipo RR Watameda (I_LOVE_HOANG_YEN, FLASHMT, NGUYENHUNGTAM) de la Universidad Nacional de Singapur | RR Watameda representó a la Universidad Nacional de Singapur para las Finales Mundiales ACM-ICPC 2016. Los artículos en este cuaderno son bastante estándar y bien organizados. |
| ★★ ☆ | BOBOGEI81123/BCW_CODEBOOK, por Equipo BCW0X1BD2 (Darkhh, Bobogei81123, Paso5) de la Universidad Nacional de Taiwán | BCW0X1BD2 representó a la Universidad Nacional de Taiwán para las Finales Mundiales ACM-ICPC 2016. Este cuaderno contiene implementaciones sólidas para estructuras de datos avanzadas y algoritmos. |
| ★ ☆☆ | Foreverbell/ACM-ICPC-Cheat-sheet, por Foreverbell (Foreverbell) | Un cuaderno con algunas estructuras de datos avanzadas y algoritmos, incluidos algunos de la escena informática de China. |
| ★ ☆☆ | Archivo de código de Igor, por Igor Naverniouk (Abednego) | Un buen cuaderno de Igor Naverniouk, que actualmente es ingeniero de software en Google y parte del equipo de Google Code Jam. |
Detalles del idioma
Idiomas y otros conocimientos misceláneos.
C/C ++
| ☆ | Nombre | Descripción |
|---|
| ★★ ☆ | Encienda C ++ con la biblioteca de plantillas estándar - Topcoder: Parte 1, Parte 2 | Un tutorial introductorio sobre C ++ STLS básicos. |
| ★★ ☆ | Una vez más, en la entrada/salida de C ++ - CodeForces | Obtenga más información sobre las optimizaciones de E/S de C ++. |
| ★★ ☆ | Trucos C ++ - CodeForces ... ¿Cuáles son algunos trucos geniales de C ++ para usar en un concurso de programación? - Quora | Abundantes trucos de C ++ para programación competitiva. Tenga en cuenta que algunos deben usarse con cuidado. |
| ★★★ | C ++ STL: Estructuras de datos basadas en políticas - CodeForces: Parte 1, Parte 2 | Introducción detallada a las estructuras de datos adicionales implementadas en GNU C ++. La documentación oficial se puede encontrar aquí. |
| ★ ☆☆ | C ++ 11 Preguntas frecuentes (inglés, chino, ruso, japonés, coreano) | Una lista de preguntas frecuentes sobre C ++ 11 recopilada y escrita por Bjarne Stroustrup, el creador de C ++. |
Java
| ☆ | Nombre | Descripción |
|---|
| ★★ ☆ | Cómo leer la entrada en Java - Tutorial - CodeForces | Aprenda a leer la entrada más rápido. Esta es una lectura obligada para aquellos que tienen la intención de usar Java para la programación competitiva |
| ★★ ☆ | Cómo clasificar las matrices en Java y evitar TLE - CodeForces | Algunos consejos sobre cómo evitar alcanzar el peor caso de clasificación rápida |
| ★★ ☆ | Aritmética de Bignum en Java - ¡superamos a Biginteger! - CodeForces | Una clase básica pero más rápida personalizada de BigInteger |
| ★★ ☆ | EZ Collections, EZ Life (Biblioteca New Java para concursos) - CodeForces | Una biblioteca de Java para concursos escritos por Alexey Dergunov (Dalex). ArrayList, Arraydeque, Heap, Sort, Hashset, Hashmap, TreeSet, Treemap, Treelist y pares se implementan clases |
Misceláneas
| ☆ | Nombre | Descripción |
|---|
| ★★★ | Bit Hacks Twiddling | Una enorme lista compilada de trucos de manipulación de bits. |
| ★★★ | Comparación de números de puntos flotantes, edición 2012 - ASCII aleatoria | Todo lo que necesitas saber sobre los números de puntos flotantes. Una lectura obligada especialmente para temas de geometría. |
| ★★ ☆ | Idiomas de estilo C orientados a objetos: C ++, Objective-C, Java, C#-una hoja de referencia de lado a lado | Una hoja de referencia detallada de lado a lado para sintaxis comunes. |
Herramientas
Herramientas impresionantes que te facilitarán la vida.
IDES
| ☆ | Nombre | Plataforma | Descripción |
|---|
| ★★★ | Empuje | CLI / multiplataforma | VIM es uno de los editores de texto más populares entre programadores avanzados. Permite que la edición de texto se realice de manera muy eficiente con solo teclas. VIM también es muy configurable, extensible e integra con shells (líneas de comando) muy bien. El único revés sobre VIM es que tiene una curva de aprendizaje alta para principiantes. |
| ★★★ | Emacs | CLI / multiplataforma | Emacs es otro editor de texto popular (o entorno de desarrollo para ser más preciso). El debate sobre "Vim vs. Emacs" se menciona constantemente debido a su popularidad. Básicamente, Emacs es más que un solo editor de texto. Tiene complementos como gerentes de archivos, navegadores web, clientes de correo y clientes de noticias que permiten a los usuarios realizar estas tareas directamente dentro de los EMAC. Emacs es "más pesado" debido a esto, pero posiblemente tenga una curva de aprendizaje relativamente más fácil para principiantes. |
| ★★★ | Gerente lejano | Híbrido / Windows | Far Manager es el editor más utilizado en la comunidad de programación competitiva RU/cis. En realidad, es un administrador de archivos en sus huesos, pero puede instalar Farcolorer, un complemento de sintaxis marcador para programarlo. Configurado correctamente, Far Manager le permite navegar entre archivos de manera muy eficiente mientras escribe sus códigos. |
| ★★★ | Código :: bloques | GUI / multiplataforma | Code :: Blocks es el IDE para C/C ++. Es un ide versátil y versátil con numerosas características excelentes. Código :: Blocks generalmente se proporciona junto con VIM en concursos de programación. |
| ★★★ | Idea intelij | GUI / multiplataforma | IntelliJ Idea es sin duda uno de los mejores ides para Java. Es utilizado por la mayoría de los programadores competitivos que usan Java como su idioma principal. Asegúrese de consultar Chelper, un complemento muy útil escrito para concursos de programación. |
| ★★ ☆ | Texto sublime | GUI / multiplataforma | El texto sublime es un editor de texto extraordinario. Repleto de características potentes e innovadoras como múltiples caretes, minimaps y paletas de comandos, atrae a una comunidad fuerte y atractiva. El texto sublime es altamente extensible, así que asegúrese de que el control de paquetes sea instalado y explore quizás uno de los mayores catálogo de complementos. |
| ★★ ☆ | Eclipse | GUI / multiplataforma | Eclipse es otro buen IDE para Java. Es una alternativa bien a la idea de IntelliJ (un poco inferior a la idea según los estándares de hoy). A veces, los concursos solo proporcionan Eclipse por alguna razón, por lo que este podría ser un buen incentivo para tratar de usar Eclipse. |
| ★★ ☆ | Orto | GUI / multiplataforma | Clion, producido por JetBrains, la misma compañía que hizo IntelliJ Idea, es un poderoso ideal para C ++. Las licencias educativas gratuitas están disponibles o puede probar su EAP (programa de acceso temprano) que aún es gratuito a partir de abril de 2018. Es posible que desee desactivar su función de inspección de código, ya que causará un poco de retraso. |
| ★ ☆☆ | Otros ides | Mezclado | Visual Studio es el IDE para usar en caso de que desee codificar en C#. ... Tanto Atom como Visual Studio Code están construidos con Electron (escrito en JavaScript) y, por lo tanto, algo de recursos. ... Codelite es un ide recién creciente. Tenga en cuenta que los tiempos de carga y creación de proyectos pueden ser extraordinarios. |
Uso personal
| ☆ | Nombre | Descripción |
|---|
| ★★★ | Visualgo | Un sitio web con una gran colección de herramientas de visualización para algoritmos y estructuras de datos. |
| ★★★ | Ayudantes de la práctica general: ... Chelper (Idea IntellEnj) (Manual) ... Caide (Visual Studio, Codelite, Aplicación de línea de comandos independiente) ... Jhelper (AppCode, Clion) Tools en línea-Judge (herramienta de CLI independiente, se mantiene activamente). | Excelentes herramientas que analizan los concursos, los códigos de biblioteca en línea y proporcionan marcos de prueba. Le ahorran pasar su precioso tiempo al cambiar de ventana y copiar pasando de un lado a otro. |
| ★★ ☆ | CodeForces Parsers: ... CodeForces Parser ... GOCF ... CFPARSER (EMACS) CFPARSER (CLI) | Estas herramientas analizan los problemas del concurso y ayudan a ejecutar pruebas de muestra. |
| ★★★ | La enciclopedia en línea de secuencias enteras (OEIS) | Una impresionante enciclopedia con una base de datos de innumerables secuencias enteras. También cuenta con un potente motor de búsqueda. A veces, un problema combinatorio aparentemente difícil podría ser equivalente a una secuencia entera simple o estudiada. |
| ★★ ☆ | Highlighters de sintaxis: ... tohtml.com ... markup.su ... hilite.me | Muy útil para crear diapositivas o cuadernos de equipo con fragmentos de código bonitos y formateados. ¡Simplemente copie los fragmentos de código resaltados y péguelos en su editor Wysiwyg favorito (que lo vea! |
| ★★ ☆ | Compartir en código: ... ideone.com ... pastebin.com ... Ubuntu Pastebin | Estas herramientas generan páginas semipermanentes para compartir código. Muy útil, especialmente cuando intentas que alguien más investigue tu código. |
| ★★ ☆ | Inefable | Un clasificador de línea de comandos simple para la calificación local. |
| ★★ ☆ | udebug | Una plataforma que proporciona resultados esperados para entradas especificadas por el usuario a problemas en el juez en línea de UVA. Algunos problemas también proporcionan casos de prueba adicionales para la depuración. |
Preparación del concurso
| ☆ | Nombre | Descripción |
|---|
| ★★★ | polígono | Polygon proporciona una plataforma y un rico conjunto de herramientas para la preparación del concurso profesional. ... Un ejemplo: Validadores con TestLib.h - CodeForces |
| ★★ ☆ | Editor de gráficos | Una herramienta fantástica para crear y visualizar gráficos. |
| ★★ ☆ | tcframe | Un marco C ++ para generar casos de prueba de problemas de programación competitivos. |
| ★★★ | Juez virtual (Vjudge) | Virtual Judge (VJudge) permite a los usuarios crear concursos virtuales con problemas a partir de archivos de problemas notables. |
| ★★ ☆ | Juez en línea de BNU | El juez en línea de BNU también permite a los usuarios crear concursos virtuales. |
| ★★ ☆ | Kattis | Kattis ayuda en la preparación del concurso (envíalos por correo electrónico por ayuda). |
Comunidad
¡Conoce a los programadores competitivos de Dios!
Aprenda consejos útiles, tutoriales e ideas de estas personas :)
Blogs
| Nombre (mango) | Nombre del blog |
|---|
| Blogs de código de código |
| Petr Mitrichev (Petr) | Algoritmos semanales |
| Makoto SOEJIMA (RNG_58) | Blog de RNG_58 |
| Bruce Merry (Bmerry) | La entropía siempre aumenta |
| Przemysław Dębiak (Psyho) | Blog de Psyho |
| Anudeep Nekkanti (Anudeep2011) | Espacio de nombres anudeep;) |
| Vexoriano (Vexoriano) | Blog de Vexorian |
| Ashar Fuadi (Fushar) | Blog de Fushar |
| Lijie Chen (WJMZBMR) | WJMZBMR (chino) |
| Huang i-wen (Dreamon) | 小月的耍廢日誌 (chino) |
| Shiang-yun Yang (Morris1028) | Blog de Morris (chino) |
| Yuhao du (ToodifiFiCuit, Toosimple, Xudyh) | Xudyh (chino) |
YouTube y transmisiones en vivo
| Nombre (mango) | Enlace |
|---|
| Petr Mitrichev (Petr) | YouTube |
| Conferencias de la puerta de Ravindrababu Ravula | YouTube |
| Mostafa Saad Ibrahim (Mostafa.saad.fci) | Programación competitiva YouTube (Texto en inglés en inglés) |
| Tushar Roy | YouTube, con muchos videos tutoriales. |
| Geeksforgeeks | YouTube |
| ¡Algoritmos en vivo! | YouTube |
| CodeChef | YouTube |
| Truco | YouTube |
| Ideserve | YouTube |
| Code_report | YouTube, con actualizaciones del concurso y tutoriales de problemas de Hackerrank, Leetcode, Topcoder y CodeForces. |
| "Sothe" el algoritmo lobo | YouTube |
| Egor Kulikov (egor) | YouTube |
| Adam Bardashevich (suscriptor) | 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 (Segunda lectura) | YouTube, editoriales, conferencias altas calidad (temas avanzados) |
| escolar mycodes | YouTube, videos de alta calidad sobre programación básica, estructuras de datos y algoritmos |
| William Lin (tmwilliamlin168) | YouTube, principalmente transmisiones, consejos pero inspirador y, a veces, perspicaz |
| Codencode (Kazama460) | YouTube, conferencias cortas que cubren varios temas relacionados con CP como teoría de gráficos, teoría de números, DP, estructuras de datos avanzadas. |
| Colin Galen (Galen_colin) | YouTube, editoriales, screencasts |
| William Feset | YouTube, videos de alta calidad que cubren casi todas las estructuras de datos, algoritmos |
Quora
Visite Programación competitiva - Quora (los 10 mejores escritores vistos).
| Figuras comunitarias importantes | Descripción |
|---|
| Bolsa | Director Ejecutivo de ACM-ICPC. CS Profesor de la Universidad de Baylor. |
| Michal Forišek (Miof) | Organizador de IPSC e IOI. Profesor de CS en la Universidad de Comenius en Eslovaquia. Investigador de Educación de Algoritmo y CS. Ex programador competitivo altamente calificado. |
| 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
Artículos
Informative and helpful articles
| Sujeto |
|---|
| 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 |
Preguntas frecuentes
Fine answers to frequently-asked questions
| Pregunta |
|---|
| 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
| Nombre | Enlace |
|---|
| 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 |
| Algoritmos | tayllan/awesome-algorithms |
| Algorithm Visualization | enjalot/algovis |
| Matemáticas | rossant/awesome-math |
| C++ | fffaraz/awesome-cpp |
| Java | akullpp/awesome-java |
| Cursos | prakhar1989/awesome-courses |
| Free Programming Books | vhf/free-programming-books |
| Community-curated C++ Resources | Hackr.io |
Interview Questions
| Nombre | Descripción |
|---|
| 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 |
| Código leet | Well-organized website for software engineering interview preparation with best explanined solutions. |
Licencia
Awesome Competitive Programming is licensed under a Creative Commons Attribution 4.0 International License.