Algoritmos y estructuras de datos para OIA
Matemática - Algoritmos con enteros
Escritura en base / cambio de base
Máximo Común Divisor
Elevar rápidamente
Ecuaciones Diofanticas
Criba de Eratóstenes
Fracciones
Combinatoria
/
Probabilidad
Algoritmos de ordenamiento
Merge sort
Mediana y estadísticos de orden
Búsqueda lineal y binaria
Máximos y mínimos en funciones unimodales
Búsqueda binaria separadora
Recursión:
Divide and conquer
Programación Dinámica
Programación dinámica I
Programación dinámica II
Programación dinámica con máscara de bits
-
Búsqueda exhaustiva: Fuerza bruta y backtracking
Análisis de complejidad asintótica
Análisis de tiempo amortizado
Input/Output
Sliding Window
Sliding Window RMQ
Grafos
:
Definiciones
Aristas como entidad
Caminos mínimos:
BFS
Distintas movidas en un tablero y cómo simularlo
Guardar distintos tipos de informacion en cada nodo
Dijkstra
Bellman Ford
Floyd Warshall
DAG de caminos mínimos
DFS
Componentes conexas
Ciclo/camino Euleriano
Ciclo/camino Hamiltoniano
Grafos Bipartitos
Maximo Matching
Árboles
Programación Dinámica en árboles
Diámetro de un árbol
Lowest Common Ancestor
Descomposición en centroides
Árbol Generador
Grafos Dirigidos
Ordenamiento Topológico (Toposort)
Componentes Fuertemente Conexas
Grafos Funcionales
String
Máxima Longitud de Substring Palindrómica
Maxima subsecuencia palindrómica
Trie
Geometría
Sweep Line
Convex Hull
Optimizar triangulacion de poligono convexo con alguna función objetivo
Estructuras Útiles
Tablita aditiva
Sparse Table
Segment Tree
Fenwick Tree
Union-Find
Compresión de coordenadas
Problemas con muchas queries a resolver
Offline vs Online
Algoritmo de Mo
Problemas abarcativos Generales
Knapsack
LIS
LCS
Jaque mate en 2
TSP
Planificacion de tareas de manera optima
Par de puntos mas cercano en plano
Teoría de lenguajes
Gramática BNF y Parser Recursivo Descendente