La programación competitiva es un deporte mental que le permite codificar un problema dado bajo las restricciones proporcionadas. El propósito de este artículo es guiar a cada persona que tenga el deseo de sobresalir en este deporte. Este artículo proporciona un plan de estudios detallado para la programación competitiva diseñado por expertos de la industria para impulsar la preparación de los lectores.
Cursos relacionados
Programación Competitiva – Curso en Vivo
Prepárate para mejorar tus habilidades de programación con este curso de programación competitiva en vivo . Aprenda los fundamentos de la programación, DSA, algoritmos matemáticos y mucho más. Entonces, ¿por qué esperar? ¡Sumérgete en el mundo de la programación inscribiéndote en este curso hoy!
Tema:
Introducción
- ¿Qué es la programación competitiva y cómo prepararse para ella?
- E/S rápida: CPP , Java , Python
- Bibliotecas útiles: CPP , Java , Python
- Archivos de entrada/salida: Conjunto 1 , Conjunto 2
- Consejos y trucos: Conjunto 1 , Conjunto 2
- Métodos de entrada: CPP , Java , Python
- Plantilla: CPP
- Idioma: CPP , Java , Python
- Complejidad del Tiempo: Análisis
- Configuración del entorno de programación competitivo: Sublime: CPP , Visual Studio: CPP y Python
Conceptos básicos de la manipulación de arrays, strings, codiciosos y bits
- Invertir una array (Problemas relacionados: Problema 1 , Problema 2 )
- Suma de dígitos
- Programa para verificar si una string dada es Palindrome en C , Python ( problema relacionado )
- Suma de elementos de array ( Problema relacionado )
- Elemento máximo y mínimo de array ( problema relacionado )
- Contar frecuencias de elementos de array (Problemas relacionados: Problema 1 , Problema 2 )
- Flotación y precisión: CPP , Java , Python
- Suma de prefijos , array de diferencia de suma de prefijos 2D | Consulta de actualización de rango en O(1) : (Problemas relacionados: Problema 1 , Problema 2 )
- Compresión de coordenadas : ( Problema relacionado )
- Algoritmo de Kadane : ( Problema relacionado )
- Problema de selección de actividad : ( Problema relacionado )
- Problema de secuenciación de trabajos : ( Problema relacionado )
- Ventana corrediza : ( Problema relacionado )
- Operadores lógicos: CPP Conjunto 1 , Conjunto 2 , Java , Python
- Manipulación de bits: Conjunto 1 , Conjunto 2 , Conjunto 3 (Problemas relacionados: Problema 1 , Problema 2 , Problema 3 )
- CPP de conjunto de bits
- https://www.geeksforgeeks.org/top-50-array-coding-problems-for-interviews/
- https://www.geeksforgeeks.org/top-50-string-coding-problems-for-interviews/
Teoría de Números y Combinatoria
- Número primo ( problema relacionado )
- Tamiz de Eratóstenes ( Problema relacionado )
- Tamiz segmentado ( problema relacionado )
- Encuentra todos los divisores de un número natural ( Problema relacionado )
- Mínimo factor primo de números hasta N ( Problema relacionado )
- Todos los factores primos de un número ( Problema relacionado )
- Factorización prima usando Sieve O (log n) para consultas múltiples
- Suma de todos los factores de un número ( Problema relacionado )
- Mcd de dos números , Lcm de dos números ( Problema relacionado )
- Ecuaciones diofánticas lineales
- Algoritmos de Euclides (Básico y Extendido)
- Función Totient de Euler ( Problema relacionado )
- Función Totient de Euler para todos los números menores o iguales que n
- Principio de exclusión de inclusión
- Principio del casillero
- Operaciones Modulares
- Inversa modular : ( Problema relacionado 1 , Problema 2 )
- Teorema chino del resto: Conjunto 1 , Conjunto 2
- Potencia(x, y) en O( logN )
- Potencia (x, y)% mod : ( Problema relacionado 1 , Problema 2 )
- Exponenciación de arrays : ( Problema relacionado )
- Permutación y combinación: Conjunto 1 , Conjunto 2 , Prueba 1 , Prueba 2
- nCr: Conjunto 1 , Conjunto 2
- nCr % mod: Conjunto 1 , Conjunto 2 : ( Problema relacionado )
- nCr % mod para múltiples consultas : ( Problema relacionado )
- Números catalanes : aplicaciones y problemas relacionados
- Eliminación gaussiana
Búsqueda, clasificación y estructuras de datos básicas
- Búsqueda lineal (problemas relacionados: problema 1 , problema 2 )
- Búsqueda binaria , Búsqueda binaria ilimitada (Problemas relacionados: Problema 1 , Problema 2 , Problema 3 )
- Clasificación incorporada O (logN): CPP , Java , Python (Problemas relacionados: Problema 1 , Problema 2 , Problema 3 , Problema 4 )
- Combinar ordenación (Problemas relacionados: Problema 1 , Problema 2 )
- Clasificación rápida (Problemas relacionados: Problema )
- Pila: Implementación en CPP , Java , Python (Problemas relacionados: Problema 1 , Problema 2 , Problema 3 )
- Cola: Implementación en CPP , Java , Python (Problemas relacionados: Problema 1 , Problema 2 , Problema 3 )
- Deque: Implementación en CPP , Java , Python (Problemas relacionados: Problema )
- Cola de prioridad: Implementación en CPP , Java , Python (Problemas relacionados: Problema 1 , Problema 2 , Problema 3 )
Árbol y Gráficos
- Árbol BFS , Árbol DFS (Problemas relacionados: Problema 1 , Problema 2 , Problema 3 )
- Gráfico BFS , Gráfico BFS 2 , Gráfico DFS (Problemas relacionados: Problema 1 , Problema 2 )
- Algoritmo de ruta más corta de Dijkstra (Problemas relacionados: Problema 1, Problema 2 )
- Algoritmo de Bellman – Ford ( problema relacionado )
- Algoritmo de Floyd Warshall ( problema relacionado )
- 0-1 BFS , algoritmo de marcación
- Ciclo de detección: Dirigido , No dirigido (Problemas relacionados: Problema 1 , Problema 2 )
- Conjunto disjunto (búsqueda de unión): Conjunto 1 , Conjunto 2 , Conjunto 3 ( Problema relacionado )
- Clasificación topológica , algoritmo de Kahn ( problema relacionado)
- Árbol de expansión mínimo: algoritmo de Prim, algoritmo de Kruskal ( problema relacionado )
- Bipartito o no , M-Coloring (Problemas relacionados: Problema 1 , Problema 2 , Problema 3 )
- Componentes fuertemente conectados: Tarjan , Kosaraju (Problemas relacionados: Problema 1 , Problema 2 )
- Ruta de Euler: no dirigida , dirigida ( problema relacionado )
- Algoritmos de flujo: Conjunto 1 , Conjunto 2 , Algoritmo de Dinic (Problemas relacionados: Problema 1 , Problema 2 )
- Diámetro del árbol
- Descomposición centroide
- Ancestro común más bajo
- https://www.geeksforgeeks.org/top-50-tree-coding-problems-for-interviews/
Recursión y Programación Dinámica
- Recursividad : Prueba 1 , Prueba 2 , Prueba 3 , Prueba 4 , Prueba 5 , Prueba 6 , Prueba 7 ( Problemas relacionados: Problema 1 , Problema 2 , Problema 3 )
- Retroceso : ( Problemas relacionados: Problema 1 , Problema 2 )
- Introducción de Dp: Conjunto 1 , Conjunto 2 , Conjunto 3 , Conjunto 4 , Conjunto 5
- Preguntas de programación dinámica más útiles
- Problemas adicionales de DP: Problema 1 , Problema 2 , Problema 3 , Problema 4
- Dp en árboles: Conjunto 1 , Conjunto 2
- Dp en enmascaramiento de bits: Conjunto 1 , Conjunto 2 , Conjunto 3
- Dígito Dp
- https://www.geeksforgeeks.org/top-50-dynamic-programming-coding-problems-for-interviews/
Algoritmos de strings
- Árbol de sufijos: Conjunto 1 , Conjunto 2
- Algoritmo Z
- Algoritmo KMP , Algoritmo Rabin-Karp ( Problema relacionado )
- Algoritmo de Manacher: Conjunto 1 , Conjunto 2 , Conjunto 3 , Conjunto 4
- Automatización de sufijos: Conjunto 1 , Conjunto 2
Geometría y Teoría de Juegos
- Par de puntos más cercano
- ¿Cómo verificar si dos segmentos de línea dados se cruzan? ( Problema relacionado)
- ¿Cómo verificar si un punto dado se encuentra dentro o fuera de un polígono?
- Casco convexo: Conjunto 1 , Conjunto 2 ( Problema relacionado )
- Dados n segmentos de línea, encuentre si dos segmentos se intersecan
- Comprobar si un punto dado se encuentra dentro de un triángulo o no
- Cómo verificar si dados cuatro puntos forman un cuadrado : ( Problema relacionado)
- Teoría de juegos combinatorios: Conjunto 1 , Conjunto 2 , Conjunto 3 , Conjunto 4
- Algoritmo Minimax en teoría de juegos: Conjunto 1 , Conjunto 2 , Conjunto 3 , Conjunto 4 , Conjunto 5
- Variación en el juego Nim
- Encuentra al ganador en nim-game
- Estrategia óptima para un juego
Estructuras de datos avanzadas
- Trie: Conjunto 1 , Conjunto 2 , Conjunto 3 , ( Problemas relacionados : Problema 1 , Problema 2 , Problema 3 , Problema 4 , Problema 5 )
- Árbol de Fenwick: Conjunto 1 , Conjunto 2 , Conjunto 3 , Conjunto 4 , ( Problema relacionado )
- Árbol de segmentos: Conjunto 1 , Conjunto 2 , Conjunto 3 ( Problema relacionado )
- Tabla dispersa: Conjunto 1 , Conjunto 2
- Descomposición Sqrt: Conjunto 1 , Conjunto 2
- Descomposición ligera pesada: Conjunto 1 , Conjunto 2
- Encontrarse en el medio
- Algoritmo de MO , Problema
- Estructura de datos basada en políticas
También puede consultar los cursos en línea de Geeksforgeeks para aprender estructuras de datos y algoritmos, cursos bien diseñados impartidos por expertos de la industria.
Cursos GeeksforGeeks
Programación Competitiva – Curso en Vivo
¿Estás listo para llevar tus habilidades de programación al siguiente nivel? Este curso de programación competitiva en vivo lo ayudará a mejorar sus habilidades de resolución de problemas para ser un programador de una empresa líder y obtener una ventaja competitiva sobre otros candidatos en las entrevistas de SDE. Aprenda conceptos básicos de programación, estructura de datos y algoritmos, implementación eficiente de algoritmos matemáticos y mucho más. Entonces, ¿por qué esperar? Da tu primer paso para convertirte en un mejor programador, ¡nos vemos en el curso!
DSA a su propio ritmo
Estructuras de datos maestros y algoritmos, ¡con la confianza de más de 75 000 estudiantes! Prepárese para las entrevistas con los principales gigantes de TI como Microsoft, Amazon, Adobe, etc. Creado con años de experiencia por los mejores expertos de la industria y le ofrece un paquete completo de conferencias en video, problemas de práctica, cuestionarios, foros de discusión y concursos. Aprenda y domine DSA al precio más asequible posible con GeeksforGeeks DSA Self-Paced Course . ¡Únete hoy!
Cursos básicos de lenguaje [ Programación C / C++ / JAVA / Python ]
Domine cualquier lenguaje de programación desde cero y comprenda todos sus conceptos fundamentales básicos para una base de programación sólida a precios asequibles con la ayuda de los cursos básicos de lenguaje GeeksforGeeks: programación en C | Fundación Java | Fundación Python | Fundación C++ . Estos cursos son para principiantes completos que quieren comenzar con la programación y construir sus cimientos. ¡Comience su viaje de codificación hoy!.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA