Matemáticas:
(a) Teoría de los números
- Generación de números primos (tamiz, tamiz segmentado)
- Teorema de Euler Totient
- Teorema de Fermat
- HCF y LCM (Euclides)
- Ecuaciones lineales de diofantinas (Euclides extendidos)
- Aritmética de módulo (suma, multiplicación, sustracción, inversa modular)
- Hallazgo del ciclo (Floyd Algo y Brent Algo)
- Factorización entera (División de prueba, método Pollard Rho)
- Teorema de Lucas (simple y avanzado)
- Teorema del resto chino
- Teorema de Wilson
- Miller – Rabin Primality Testing
- Números perfectos
- Conjetura de Goldbach
(b) Probabilidad
- ¿Cuál es la complejidad del tiempo para una solución iterativa de la serie Fibonacci?
- Cómo resolver el problema del "número mínimo de cortes"
- ¿Cuál es el algoritmo más fácil para encontrar el camino más corto en un robot seguidor de línea para un principiante?
- ¿Cómo funciona el algoritmo de fijación de precios de Megabus?
- ¿Cuáles son algunos de los buenos libros sobre Algoritmos de aprendizaje automático de árbol de decisión?
- Probabilidad básica y probabilidad condicional
- Variables aleatorias
- Funciones generadoras de probabilidad
- Expectativa
- Distribución de probabilidad [Binomial, Poisson, Normal, Bernoulli]
(c) Contando
- Principio de casillero
- Exclusión inclusión
- Números especiales [Stirling, Fibonacci, catalán, euleriano, armónico, Bernoulli]
- Conteo de polia
- Lema de Burnside
(d) Ciclos de permutación
(e) Álgebra lineal
- Suma y resta de matrices
- Multiplicación (algoritmo de Strassen), exponenciación logarítmica
- Transformaciones de matriz [Transposición, rotación de matriz, que representa transformaciones lineales usando matriz]
- Determinante, rango e inverso de la matriz [Eliminación Gaussiana, Eliminación Gauss Jordan]
- Sistema de resolución de ecuaciones lineales
- Matriz de exponenciación para resolver recurrencias
- Eigenvalores y vector Eigen
- Raíces de un polinomio [Factorización prima de un polinomio, raíces enteras de un polinomio]
- Interpolación de Lagrange
(e) Teoría del juego
- Conceptos básicos y juego de Nim [Teorema de Grundy, número de Grundy]
- Hackenbush
(f) Teoría del grupo
- Lema de Burnside
- Teorema de Polya
Gráficos:
(a) Representación gráfica
- Matriz de adyacencia
- Lista de adyacencia
- Matriz de incidencia
- Lista de borde
(b) Tipos de gráficos
- Dirigido
- No dirigido
- Ponderado
- No ponderado
- Plano
- Hamilton
- Euler
- Gráficos especiales
(c) DFS y su aplicación
- Detección de ciclo
- Puntos de articulación
- Puentes
- Componente fuertemente conectado
- Componente conectado
- Encontrar el camino
- Resolviendo el laberinto
- Biconnectividad en el gráfico
- Clasificación topológica
- Comprobación bipartita
- Prueba de planaridad
- Algoritmo de relleno de inundación
(d) BFS y su aplicación
- Camino más corto (número de bordes)
- Comprobación bipartita
- Componentes conectados
(d) Árbol de expansión mínima
- Algoritmo de Prim
- Algoritmo de Kruskal
(d) Ruta más corta de fuente única
- Dijkstra
- Bellman Ford
(e) Todos los pares de la ruta más corta
- Algoritmo de Floyd Warshall
(f) Euler Tour
(g) Flujo
- Ford-Fulkerson [PFS, DFS, BFS]
- Algoritmo de Dinic
- Costo mínimo: flujo máximo [Algo de ruta más corto sucesivo, algoritmo de cancelación de ciclo]
- BPM ponderado máximo [algoritmo Kuhn Munkres / Método húngaro]
- Stoer Wagner Min-Cut Algo
- Hop-Kraft BPM
- Algoritmo de reducción de Edmond Blossom
(h) Otros temas importantes sobre gráficos
- 2-SAT,
- LCA
- Máxima coincidencia de cardinalidad
- Flujo de aplicación
- Min Path Cover Over Dag
- Trayectoria independiente de borde independiente
- Cubierta mínima de vértice
- Máximo conjunto independiente
Estructuras de datos:
- Matrices
- Lista enlazada
- Árboles (árbol binario y árbol de búsqueda binaria)
- Pilas
- Colas
- Montón
- Tablas Hash
- Estructuras de datos de conjunto disjunto
- Trie
- Árbol de segmento
- Árbol de índice binario
- Treap
Búsqueda y clasificación:
- Búsqueda lineal
- Búsqueda binaria
- Búsqueda ternaria
- Selección Ordenar
- Ordenamiento de burbuja
- Tipo de inserción
- Ordenar fusión
- Ordenación rápida
- Selección rápida
- Heap Sort
- Radix Sort
- Contando Ordenar
Codicioso:
Problemas clásicos de codicia y concepto
ejemplo: mochila fraccional
Programación dinámica Problemas clásicos
- Editar distancia
- Rompecabezas de caída de huevos
- Mochila entera
- Conjunto independiente más grande
- La secuencia biotónica más larga
- Subsecuencia común más larga
- Subcadena común más larga
- Subsecuencia creciente más larga
- La secuencia palindrómica más larga
- Subcadena palindrómica más larga
- Subcadena más larga sin repetir carácter
- Multiplicación de cadena matricial
- Submatriz cuadrada de tamaño máximo con una
- Longitud máxima de pares de cadenas
- Subsecuencia creciente de suma máxima
- Árbol de búsqueda binario óptimo
- Problema de partición de palíndromo
- Establecer problema de partición
- Subconjunto Suma
- Word Wrap Problem
Programación dinámica Técnicas avanzadas
- DP + Tree
- DP + enmascaramiento de bits
- DP + Búsqueda binaria
- DP + Graph
- DP + exponenciación matricial
- DP + espacio de probabilidad
- DP + Recurrencia de grietas
Divide y vencerás
Problemas y conceptos clásicos
- Ordenar fusión
- Puntos de par más cercanos
Otras técnicas de diseño de algoritmos:
- BackTracking
- Hombre en medio
- Newton-Raphson para llegar al punto fijo
- Fuerza bruta
- Algo constructivo
- Ventana deslizante
- Clasificación de panqueques
Recursos:
Estructuras de datos y algoritmo:
Tutoriales de algoritmos
Estructuras de datos y algoritmos
Inverso Multiplicativo Modular
Descomposición ligera pesada
Tutorial: Actualizaciones de rango en Fenwick Tree por Amey Dharwadker en Concursos de programación
visualizar estructuras de datos y algoritmos a través de animaciones
Truco del concurso de codificación: reunirse en el medio
Introducción a la programación dinámica
Problemas de práctica de programación dinámica
Resolución de recurrencia lineal para concurso de programación
Tutorial sobre Trie y problemas de ejemplo de Lalit Kundu en Threads @ IIIT Hyderabad
Árboles indexados binarios con algún ejemplo resuelto.
Problemas de programación dinámica con bitmasking
Permítanos codificar: Segmentar árboles
C ++:
Tutorial de programación de C ++
Contenedores – Referencia de C ++
Guía del programador de la biblioteca de plantillas estándar
Actualizado con algunos enlaces más.