Consulta de suma de rango usando tabla dispersa

Tenemos una array arr[]. Necesitamos encontrar la suma de todos los elementos en el rango L y R donde 0 <= L <= R <= n-1. Considere una situación en la que hay muchas consultas de rango. Ejemplos:  Input : 3 7 2 5 8 9 query(0, 5) query(3, 5) query(2, 4) Output : 34 … Continue reading «Consulta de suma de rango usando tabla dispersa»

Árbol Gomory-Hu | Serie 1 (Introducción)

Antecedentes: en una red de flujo, un corte st es un corte que requiere que la fuente ‘s’ y el sumidero ‘t’ estén en diferentes subconjuntos, y consiste en bordes que van desde el lado de la fuente hasta el lado del sumidero. La capacidad de un corte de st se define por la suma … Continue reading «Árbol Gomory-Hu | Serie 1 (Introducción)»

Programación dinámica en árboles | conjunto 2

Dado un árbol con N Nodes y N-1 aristas, encuentre la altura máxima del árbol cuando cualquier Node en el árbol se considera como la raíz del árbol.  El diagrama anterior representa un árbol con 11 Nodes y 10 aristas y el camino que nos da la altura máxima cuando se considera el Node 1 … Continue reading «Programación dinámica en árboles | conjunto 2»

Función de Ackerman – Part 1

En la teoría de la computabilidad, la función de Ackermann, llamada así por Wilhelm Ackermann , es uno de los ejemplos más simples y descubiertos más temprano de una función computable total que no es recursiva primitiva. Todas las funciones recursivas primitivas son totales y computables, pero la función de Ackermann ilustra que no todas … Continue reading «Función de Ackerman – Part 1»

El número de subarreglos tiene OR bit a bit >= K

Dada una array arr[] y un entero K , la tarea es contar el número de sub-arrays que tienen OR bit a bit ≥ K. Ejemplos: Entrada: arr[] = { 1, 2, 3 } K = 3  Salida: 4 O bit a bit de subarrays:  { 1 } = 1  { 1, 2 } = … Continue reading «El número de subarreglos tiene OR bit a bit >= K»

Self-Balancing-Binary-Search-Trees (Comparaciones)

Los árboles de búsqueda binarios autoequilibrados son árboles de búsqueda binarios de altura equilibrada que mantienen automáticamente la altura lo más pequeña posible cuando se realizan operaciones de inserción y eliminación en el árbol. La altura generalmente se mantiene en el orden de Log n para que todas las operaciones tomen tiempo O (Log n) … Continue reading «Self-Balancing-Binary-Search-Trees (Comparaciones)»

Tipos de intentos

Un trie es una estructura de datos de recuperación de información en forma de árbol cuyos Nodes almacenan las letras de un alfabeto. También se conoce como árbol digital o árbol radix o árbol de prefijos. Los intentos se clasifican en tres categorías: Triángulo estándar Triángulo comprimido Sufijo Trio Trie estándar Un trie estándar tiene … Continue reading «Tipos de intentos»

Algoritmo de Mo extendido con complejidad de tiempo ≈ O(1)

Dada una array de n elementos y q consultas de rango (suma de rango en este artículo) sin actualizaciones, la tarea es responder estas consultas con una complejidad de tiempo y espacio eficiente. La complejidad temporal de una consulta de rango después de aplicar la descomposición de la raíz cuadrada resulta ser O(√n) . Este … Continue reading «Algoritmo de Mo extendido con complejidad de tiempo ≈ O(1)»

Ocurrencia máxima en un rango dado

Dada una array de n enteros en orden no decreciente. Encuentre el número de ocurrencias del valor más frecuente dentro de un rango dado. Ejemplos:   Input : arr[] = {-5, -5, 2, 2, 2, 2, 3, 7, 7, 7} Query 1: start = 0, end = 9 Query 2: start = 4, end = 9 … Continue reading «Ocurrencia máxima en un rango dado»

Árbol de juego | Juego 2 (insertar)

Se recomienda consultar la siguiente publicación como requisito previo para esta publicación. Árbol de juego | Conjunto 1 (Buscar) Como se discutió en la publicación anterior , el árbol Splay es una estructura de datos autoequilibrada donde la última clave a la que se accedió siempre está en la raíz. La operación de inserción es … Continue reading «Árbol de juego | Juego 2 (insertar)»