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