Exploración de Conectividad en Mallas con Búsqueda en Profundidad

Entrada La entrada consiste en múltiples conjuntos de datos. Cada conjunto comienza con dos enteros, W y H, que representan el ancho y alto de la cuadrícula, respectivamente (ambos no exceden 20). A continuación, se presentan H líneas, cada una con W caracteres que definen el color de las baldosas: .: Baldosa negra. #: Baldosa roja. @: Baldosa ...

Publicado el 10-7 05:10

Conjuntos en Python: Manipulación y Operaciones

Introducción a los conjuntos Un conjunto es una colección desordenada y mutable que no permite elementos duplicados. Gracias a esta característica, los conjuntos son ideales para eliminar duplicados de secuencias y realizar operaciones matemáticas como uniones, intersecciones y diferencias. Se pueden crear utilizando llaves {} o la función set( ...

Publicado el 10-3 16:48

Inversión por segmentos de lista enlazada simple

6-9 Inversión por segmentos de lista enlazada simple (25 puntos) Dado una lista enlazada simple con nodo cabecera y un antero K, debes invertir cada grupo de K nodos en la lista. Por ejemplo, dada la lista 1→2→3→4→5→6 y K=3, necesitas transformarla a 3→2→1→6→5→4; si K=4, deberías obtener 4→3→2→1→5→6. Definición de la interfaz: void segmentInver ...

Publicado el 9-23 17:07

Problemas de la Competencia YACS2025 - Grupo B

Para cualquier subsecuencia \( S \), se cumple que \( \text{inv}(S) \leq \text{inv}(p) \), con igualdad si y solo si todos los pares \( (i, j) \) tales que \( i < j \) y \( a_i > a_j \) están presentes en \( S \). Un elemento \( i \) debe incluirse en \( S \) si existe algún \( j < i \) con \( a_j > a_i \) o algún \( j > i \) con ...

Publicado el 9-18 11:57

Solución del Problema P11331 con Programación Dinámica Optimizada y Estructuras de Datos

Estrategia O(N³) Primero se filtran posiciones con valores no nulos que no pueden ser máximos locales. El cálculo utiliza programación dinámica: const int MAX_N = 4e5 + 5; int n_values, sequence[MAX_N], cost[MAX_N]; bool is_visible[MAX_N]; ll dp_table[2005][2005]; int main() { cin >> n_values; for (int pos = 1; pos <= n_values; ...

Publicado el 9-14 09:42

Introducción a los Árboles de Centroides Dinámicos

Los árboles de centroides dinámicos, también conocidos como Dynamic Centroid Decomposition Trees, son una estructura de datos utilizada para resolver problemas de caminos en árboles con modificaciones en los pesos. A diferencia del algoritmo de descomposición de centroides estático, este enfoque permite actualizaciones eficientes en los pesos d ...

Publicado el 9-12 06:30

Evaluación de expresión polaca inversa y algoritmos de ventanas deslizantes

Evaluación de expresión polaca inversa Implementación usando una pila para resolver operaciones matemáticas: class Solution { public: bool esNumero(const string& s) { if (s.empty()) return false; if (s[0] == '-' && s.size() > 1) { for (int i = 1; i < s.size(); ++i) { if (!isd ...

Publicado el 9-9 03:18

Algoritmos de Búsqueda Eficientes: De Secuencial a Hash

Este artículo explora diversas técnicas de búsqueda de datos, analizando su eficiencia y aplicabilidad en distintos escenarios. Búsqueda Secuencial (Lineal) Este método recorre los elementos uno por uno hasta encontrar el valor deseado. Es simple de implementar y no requiere que los datos estén ordenados, pero su rendimiento es lineal, O(n), ...

Publicado el 9-4 17:54

Simulación 3 de 51nod

A. Se puede resolver mediante búsqueda binaria. B. Se define fi como el número esperado de pasos para llegar a la siguiente posición. Una forma de calcularlo es: fi = 1 + (1-p) * (1 + fi-1) + (1-p)^2 * (1 + fi-1) + ... Esta expresión se simplifica a: fi = 1 + ((1-p)/p) * (fi+1) Otra forma es: fi = 1 + (1-p) * (1 + fi-1 + fi) Al resolver esta ec ...

Publicado el 8-24 16:43

Uso de la clase ArrayList en Java

Introducción: En Java, ArrayList es una implementación de arreglo dinámico que ofrece una forma flexible para almacenar y manipular conjuntos de datos. Es parte del marco de colecciones de Java y permite agregar o eliminar elementos en tiempo de ejecución, además de proporcionar varios métodos útiles para trabajar con los elementos de la lista. ...

Publicado el 8-16 03:01