Guía De Estudio
Recursos de estudio, tutoriales y guías para prepararte en la Olimpiada de Informática. Explora los diferentes temas y aprende a tu propio ritmo.
Categorías
Introducción
Conceptos básicos y fundamentos para comenzar en la Olimpiada de Informática
3 artículos
Fundamentos
Conceptos básicos de pensamiento lógico y algoritmos para comenzar en programación competitiva
3 artículos
C++ Básico
Fundamentos del lenguaje C++ para programación competitiva
5 artículos
Estructuras de Control
Condicionales, ciclos y funciones en C++
5 artículos
Estructuras de Datos
Estructuras de datos esenciales para resolver problemas eficientemente
4 artículos
Algoritmos
Algoritmos fundamentales y técnicas de programación competitiva
3 artículos
Recursión
Funciones recursivas, memorización y programación dinámica
3 artículos
Pilas y Colas
Estructuras de datos lineales fundamentales para resolver problemas
3 artículos
Diccionarios y Mapas
Estructuras asociativas: map, unordered_map, set y multiset en C++
3 artículos
Búsquedas
Algoritmos de búsqueda: búsqueda binaria, BFS, DFS y técnicas de exploración
4 artículos
Matemáticas
Fundamentos matemáticos esenciales para programación competitiva: teoría de números y combinatoria
7 artículos
Punteros y Memoria
Manejo de memoria, punteros, heap y stack en C++
1 artículo
Listas Enlazadas
Listas enlazadas simples, dobles y problemas clásicos
2 artículos
Árboles
Estructuras de árboles, recorridos, BST y heaps
4 artículos
Estructuras Avanzadas
Segment trees, Fenwick trees, Tries y RMQ
4 artículos
Grafos
Fundamentos de teoría de grafos: representación, BFS, DFS y componentes
4 artículos
Grafos Avanzados
Algoritmos avanzados de grafos: caminos cortos, MST, SCC y más
8 artículos
Programación Dinámica
Técnicas de programación dinámica para optimización
2 artículos
Teoría de Juegos
Teoría de juegos, minimax y estrategias óptimas
2 artículos
Estructuras Persistentes
Estructuras de datos persistentes y versionadas
1 artículo
Etiquetas
ASCIIBFSBITBSTBellman-FordDAGDFSDPDSUDijkstraEratóstenesEuclidesFIFOFloyd-WarshallGCDI/OKahnKosarajuKruskalLCMLIFOMSTOOIPrimRMQSCCSTLTarjanUnion-Findalfa-betaalgoritmosanálisisaplicacionesaritméticaaritmética modulararraysarreglosarreglos 2Dback edgebidimensionalbienvenidabig-obinary indexed treebinary searchbitmaskbooleanosbubble sortburbujabásicobúsqueda binariabúsqueda en amplitudbúsqueda en profundidadc++cadenascamino más cortocaminos cortoscaracterescaso basecharcicloscincoeficientes binomialescolacolascoloracióncombinacionescombinatoriacomparacióncompetenciascomplejidadcomponentes conexascondicionalesconfiguraciónconjuntosconjuntos disjuntosconsultas de rangocontrol de flujocounting sortcoutcribadeletedequedesarrollodiagramasdiccionariodiccionariosdiseñodivisoresdo-whileelseentradaestrategia óptimaestructuraestructura de datosestructurasexponenciación rápidafactores primosfactorialesfactorizaciónfenwick treeforfrecuenciafuncionesfunciones recursivasfundamentosgrafo bipartitografosgrafos dirigidosgridhashheapherramientasifinformáticainordenintervalosintroduccióninvertir listaiteraciónjuegoslazy propagationlineallinked listlista de adyacencialistas enlazadaslogarítmicoloopslower boundmapmatchingmatemáticasmatricesmatriz de adyacenciamemoizaciónmemoizationmemoriamemorizaciónminimaxmodularidadmonotone stackmontículomultisetmódulonewnimnodosolimpiadaoperadoresoperadores lógicosoptimizaciónordenadoordenamientoordenamiento cubetaordenamiento topológicoparámetrospatronespensamiento-lógicopermutacionespersistentepilaspostordenprefijosprefix sumpreordenprimospriority queueproblemasproblemas clásicosprogramación dinámicapuentespunterospuntos de articulaciónqueuerecorridosrecursiónrepresentaciónresolución-de-problemasreturnsalidasegment treesegment tree persistentesetsintaxissortsparse tablesprague-grundystackstringsstructsubarreglotabulaciónteoría de juegostextotipos de datostipos personalizadostrietriángulo de Pascaltwo sumunordered_mapupper boundvariablesvectorvectoresversionadovisualizaciónwhileárbol de búsqueda binariaárbol de expansiónárboles
Artículos Recientes
algoritmosc++ordenamientosort
Entiende qué es ordenar datos y por qué es fundamental en programación
OOI Oaxaca9 de febrero de 20264 min read
algoritmosc++bubble sortordenamiento
Entiende el algoritmo de ordenamiento más intuitivo paso a paso
OOI Oaxaca9 de febrero de 20265 min read
algoritmosc++counting sortordenamiento cubeta
Aprende un algoritmo de ordenamiento que trabaja en tiempo lineal
OOI Oaxaca9 de febrero de 20265 min read
arbolesc++árbolesrepresentación
Aprende las diferentes formas de representar árboles en código
OOI Oaxaca9 de febrero de 20264 min read
arbolesc++árbolesrecorridos
Domina los recorridos preorden, inorden y postorden en árboles binarios
OOI Oaxaca9 de febrero de 20264 min read
arbolesc++BSTárbol de búsqueda binaria
Almacena datos ordenados en un árbol para búsquedas eficientes
OOI Oaxaca9 de febrero de 20264 min read
arbolesc++heappriority queue
Construye y usa un heap (montículo) para acceder al mínimo o máximo eficientemente
OOI Oaxaca9 de febrero de 20264 min read
busquedasc++búsqueda binariabinary search
Domina la técnica de dividir el espacio de búsqueda a la mitad en cada paso
OOI Oaxaca9 de febrero de 20265 min read
busquedasc++lower boundupper bound
Encuentra la primera y última posición de un elemento con búsqueda binaria
OOI Oaxaca9 de febrero de 20266 min read
busquedasc++BFSbúsqueda en amplitud
Explora nivel por nivel para encontrar caminos más cortos en grafos no ponderados
OOI Oaxaca9 de febrero de 20266 min read
