Análisis Técnico de Algoritmos del ICPC 2023 Jinan

El Concurso Internacional de Programación Colegiada (ICPC) 2023 en la sede de Jinan presentó un conjunto de problemas de alta exigencia técnica. A continuación, se detalla el análisis algorítmico y las implementaciones optimizadas para los problemas más destacados de la competencia. Problema D: Búsqueda del Dígito Máximo Este problema actúa com ...

Publicado el 6-22 00:34

Análisis de Problemas de ICPC 2023 Hangzhou (B, D, E, F, G, H, J, M)

El concurso ICPC 2023 Hangzhou presentó una cantidad generosa de medallas de oro, pero el umbral para obtener una se centró en la resolución de cinco problemas. Más allá de ese punto, todos los problemas restantes fueron considerados de nivel de medalla de oro, con cuatro de ellos (A, B, E, F) siendo accesibles para la mayoría de los competidor ...

Publicado el 6-18 07:13

Solución al problema de la isla con dos jugadores

Descripción del problema Se nos presenta un problema de cooperación entre dos jugadores en un laberinto representado por una cuadrícula de n×m. Cada casilla puede ser terreno libre (.), trampa (#) o portal de salida (@). Ambos jugadores comienzan en la misma posición y deben moverse simultáneamente en direcciones opuestas. Si uno de ellos alcan ...

Publicado el 6-17 23:04

Grafo con Bordes Coloridos y Conexión por Color mediante Union-Find Bidimensional

El Sr. Kitayuta posee un grafo no dirigido compuesto por n vértices y m bordes. Cada borde, identificado por un índice, tiene un color asignado y enlaza dos vértices específicos. Se requiere responder a una serie de consultas donde, dados dos vértices u y v, se debe determinar la cantidad de colores que permiten conectarlos ya sea directa o ind ...

Publicado el 6-13 23:59

Algoritmo de búsqueda en amplitud (BFS) con estructura de cola

La búsqueda en amplitud (BFS, por sus siglas en inglés) es un algoritmo fundamental para explorar estructuras de datos como grafos o árboles. Su principio central consiste en visitar todos los vecinos directos de un nodo antes de avanzar al siguiente nivel de profundidad, expandiéndose de manera horizontal como las ondas en el agua. Contextos d ...

Publicado el 6-11 05:01

Ordenamiento Topológico y Conectividad en Grafos Dirigidos

Fundamentos del Ordenamienot Topológico El ordenamiento topológico es una secuencia lineal de los vértices de un grafo dirigido acíclico (DAG), tal que para cada arista dirigida u -> v, el vértice u aparece antes que v en la ordenación. Si el grafo contiene ciclos, no es posible obtener un ordenamiento topológico. Implementación Estándar de ...

Publicado el 6-11 01:30

Resumen de Problemas de Algoritmos para Exámenes de Posgrado (Años Anteriores)

Año 2025 Especialidad Maestría Problema 1: Diferencia Máxima Fuente: Luogu P5146. Encontrar la máxima diferencia entre dos elementos donde el menor aparece antes del mayor. // Código optimizado para lectura #include <bits/stdc++.h> using namespace std; using ll = long long; const int N = 1e6 + 10; ll arr[N]; int main() { ios::sync_wi ...

Publicado el 6-6 19:22

Algoritmos de Camino Más Corto en Grafos

Camino Más Corto de Fuente Única Algoritmo de Dijkstra (solo para aristas con pesos positivos, fuente única) Su lógica se puede entender como ir al nodo más cercano actualmente alcanzable que aún no hemos determinado si es la ruta más corta, y encotnrar su camino más corto. Leemos todas las aristas y sus pesos, luego inicializamos todas las dis ...

Publicado el 6-4 20:58

Notas de Repaso sobre Union-Find

Implementación básica y aplicaciones de la estructura de datos Union-Find (Conjuntos Disjuntos). Ejemplo Básico: Union-Find con Compresión de Rutas Implementación estándar con las operaciones de find y union. Se utiliza compresión de rutas para optimizar las búsquedas. #include <iostream> using namespace std; const int MAX_N = 10010; int ...

Publicado el 6-3 19:47