¿Qué es una lista elaborada de cosas para aprender en la codificación competitiva?

Esto podría ayudar (fuente: codechef):

  1. Búsqueda binaria: tutorial, problemas, tutorial, implementación, problema
  2. Quicksort: Tutorial, Implementación, Tutorial
  3. Ordenar mezcla: Tutorial, Implementación, Tutorial
  4. Matriz de sufijos: Tutorial, Tutorial, Implementación, Tutorial, Implementación, Problema, Problema
  5. Algoritmo Knuth-Morris-Pratt (KMP): Tutorial, Tutorial, Implementación, Tutorial, Problema
  6. Algoritmo de Rabin-Karp: Tutorial, Implementación, Tutorial, Problema, Problema
  7. Intenta: Tutorial, Problemas, Tutorial: I, II, Tutorial, Problema, Problema, Problema
  8. Profundidad Primero, Recorrido de un gráfico: Tutorial, Implantación, Tutorial, Problemas, Problema, Problema, Problema
  9. Amplio primer recorrido de una gráfica: Tutorial, Implantación, Tutorial, Problemas, Problema, Problema, Problema, Inundación
  10. Algoritmo de Dijkstra: Tutorial, Problemas, Problema, Tutorial (codicioso), Tutorial (con montón), Implementación, Problema, Problema
  11. Árbol binario indexado: tutorial, problemas, tutorial, papel original, tutorial, tutorial, problema, problema, problema, problema, problema, problema, problema
  12. Árbol de segmentos (con propagación diferida): Tutorial, Implementación, Tutorial, Tutorial, Problemas, Implementación, Tutorial, Implementación y varios usos, Árbol de segmentos persistente, problemas como BIT, Problema, Problema / HLD también se usa /
  13. Algoritmo Z: Tutorial, Problema, Tutorial, problemas igual que KMP.
  14. Floyd Warshall Algorithm: Tutorial, Implementación, Problema, Problema
  15. Sparse Table (RMQ): Tutorial, Problemas, Tutorial, Implementación (C ++), Implementación de Java
  16. Heap / Priority Queue / Heapsort: Implementación, Explicación, Tutorial, Implementación, Problema, Capítulo de CLRS
  17. Multiplicativo modular inverso
  18. nCr% M
  19. Autómata del sufijo: Documento detallado, Tutorial, Implementación (I), Tutorial, Implementación (II), Problema, Problema, Problema, Problema, Tutorial, Implementación
  20. El ancestro común más bajo: tutorial, problemas, papel, papel, problema, problema, problema
  21. Contando las inversiones: Divide y conquista, Árbol de segmentos, Árbol de Fenwick, Problema
  22. Algoritmo extendido de Euclides
  23. Árbol de sufijo: Tutorial, Tutorial, Introducción, Construcción: I, II, Implementación, Implementación, Problema, Problema, Problema, Problema
  24. Programación Dinámica: Capítulo de CLRS (esencial), Tutorial, Problemas, Problema, Problema, Problema, Tutorial, Problema, Problema, Problema, Mayor Subsecuencia creciente, Bitmask DP, Bitmask DP, Optimización, Problema, Problema, Problema, Problema, Problema, Problema, Problema, DP en Árboles: I, II
  25. Estructuras de datos básicas: tutorial, implementación en pila, implementación en cola, tutorial, implementación en lista enlazada
  26. Exponentiación logarítmica
  27. Gráficos: Definición, Representación, Definición, Representación, Problema, Problema
  28. Árbol de expansión mínimo: tutorial, tutorial, implementación de Kruskal, implementación de Prim, problema, problema, problema, problema, problema
  29. Prime Factorización eficiente
  30. Combinatoria: Tutorial, Problemas, Problema, Tutorial
  31. Union Find / Disjoint Set: Tutorial, Tutorial, Problemas, Problema, Problema, Problema
  32. Problema de la mochila: Solución, Implementación
  33. Algoritmo de concordancia de cadenas Aho-Corasick: Tutorial, Implementación, Problema, Problema, Problema, Problema
  34. Componentes fuertemente conectados: Tutorial, Implementación, Tutorial, Problema, Problema, Problema
  35. Algoritmo de Bellman Ford: Tutorial, Implementación, Tutorial, Implementación, Problema, Problema
  36. Descomposición de luces pesadas: tutorial, problemas, tutorial, implementación, tutorial, implementación, implementación, problema, problema, problema
  37. Casco convexo: Tutorial, Implementación del algoritmo Jarvis, Tutorial con escaneo de Graham, Tutorial, Implementación, Problema, Problema, Problema, Problema, Problema
  38. Intersección de líneas: Tutorial, Implementación, Tutorial, Problemas
  39. Tamiz de Erastothenes
  40. Árbol de intervalos: Tutorial, Implementación, Problema, Problema, Problema, Problema, Problema, Problema, Tutorial
  41. Orden de conteo
  42. Probabilidades
  43. Exposición de matrices: Tutorial, Tutorial
  44. Flujo de red: (flujo máximo) Tutorial: I, II, flujo máximo (Ford-Fulkerson) Tutorial, implementación, (Corte mínimo) Tutorial, implementación, (flujo de costo mínimo) Tutorial: I, II, III, algoritmo de Dinic con implementación, Flujo máximo de Edmonds Karp con implementación, problema, problema, problema, problema, problema, problema, problema, problema, problema, problema, problema, problema, problema, problema, problema
  45. Árbol Kd: Tutorial, Tutorial, Implementación, Problema
  46. Deque
  47. Árbol binario de búsqueda: tutorial, implementación, búsqueda e inserción, eliminación
  48. Selección rápida: Implementación, Implementación
  49. Treap / Árbol cartesiano: Tutorial (detallado), Tutorial, Implementación, Usos y problemas, Problema, Problema
  50. Teoría de juegos: papel detallado, tutorial, problemas, números grundos, tutorial con problemas de ejemplo: I, II, III, IV, tutorial, problemas, problema, problema, problema, problema, problema, problema, problema, problema, problema, Problema nim
  51. STL (C ++): I, II, Curso acelerado
  52. Emparejamiento bipartito máximo
  53. Algoritmo de Manacher: Implementación, Tutorial, Tutorial, Implementación, Tutorial, Implementación, Problema, Problema, Problema
  54. Prueba de Primalidad Miller-Rabin: Código
  55. Problema de matrimonio estable
  56. Algoritmo húngaro, Tutorial
  57. Algoritmo de línea de barrido: I, II
  58. LCP: Tutorial, Implementación, Tutorial, Implementación
  59. Eliminación gaussiana
  60. Pollard Rho Factorización Integral, problema
  61. Clasificación topológica
  62. Detectando ciclos en una gráfica: Dirigida – I, II No direccionada: I
  63. Geometría: Fundamentos, Tutorial
  64. Retroceso: problema de las reinas N, Tug of War, Sudoku
  65. Eulerian y Hamiltonian Paths: Tutorial, Tutorial, Implementación (Eulerian Path and Cycle), Implementación (Hamiltonian Cycle)
  66. Colorear Gráficos: Tutorial, Implementación
  67. Reunirse en el medio: Tutorial, Implementación
  68. Entero de Precisión Arbitraria (BigInt), II
  69. Radix Sort, Bucket Sort
  70. Algoritmo de Johnson: Tutorial, Tutorial, Implementación
  71. Correspondencia máxima en un gráfico general: algoritmo de Blossom / Edmond, implementación, matriz de Tutte, problema
  72. Recursión: I, II, Torres de Hanoi con explicación.
  73. Principio de inclusión y exclusión: I, II
  74. Compresión de coordenadas
  75. Sqrt-Descomposición: Tutorial, Tutorial, Problema, Problema
  76. Link-Cut Tree: Tutorial, Wiki, Tutorial, Implementación, Problema, Problema, Problema, Problema
  77. Función Totient de Euler: Explicación, Implementación, Problemas, Explicación, Problemas
  78. Burnside Lemma: Tutorial, Tutorial, Problema
  79. Editar / Levenshtein Distancia: Tutorial, Introducción, Tutorial, Problema, Problema
  80. Rama y Límite
  81. Matemáticas para la Programación Competitiva
  82. Algoritmo de Mo: Tutorial y problemas

Empecemos directamente con la lista.

  1. Aprenda C ++ básico (conceptos básicos, bucles, sentencias condicionales, conceptos de OOP, etc.)
  2. Ver el código de otras personas (cualquiera que sea el idioma que prefiera), esto le dará una idea de cómo escribir código para una codificación competitiva
  3. Aprende STL (biblioteca de plantillas estándar), quieres competir con personas con armas de lenguaje moderno como Python, swift, ruby, etc. STL te dará una ventaja, recuerda, STL es muy amplio, así que elige los temas con prudencia
  4. Aprendizaje de la estructura de datos y algoritmos (principalmente algoritmos de ordenación y comparación de patrones)
  5. Yo personalmente prefiero
  • GeeksforGeeks | Un portal informático para geeks.
  • HackerRank
  • Code Monk – Sé un mejor programador

Recuerde que más practica, más mejor obtendrá. No te decepciones si no puedes ser bueno al comenzar, nadie es codificador por nacimiento.

La respuesta dada por Somanshu Singla es la mejor, pero para mí, para escribir una respuesta, recomendaría seguir este enlace dado. Menciona muchos recursos solo para programación competitiva

Una lista impresionante para la programación competitiva! – Codeforces

Espero que esto resuelva tu consulta

Gracias

Programación competitiva 3 por Steven Halim y Felix Halim

Enlace: Programación Competitiva