Árbol indexado binario: actualización de rango y consultas de rango

Dada una array arr[0..n-1]. Es necesario realizar las siguientes operaciones.  actualizar (l, r, val) : agrega ‘val’ a todos los elementos en la array desde [l, r]. getRangeSum(l, r) : Encuentra la suma de todos los elementos en el arreglo de [l, r]. Inicialmente, todos los elementos de la array son 0. Las consultas pueden … Continue reading «Árbol indexado binario: actualización de rango y consultas de rango»

Programa C++ para contar inversiones de tamaño tres en una array dada

Dada una array arr[] de tamaño n. Tres elementos arr[i], arr[j] y arr[k] forman una inversión de tamaño 3 si a[i] > a[j] >a[k] e i < j < k. Encuentre el número total de inversiones de tamaño 3. Ejemplo:   Input: {8, 4, 2, 1} Output: 4 The four inversions are (8,4,2), (8,4,1), (4,2,1) and … Continue reading «Programa C++ para contar inversiones de tamaño tres en una array dada»

Contar pares de inversión en una array

Dada una array A de tamaño NxN , necesitamos encontrar el número de pares de inversión en ella. El conteo de inversión en una array se define como el número de pares que satisfacen las siguientes condiciones: X 1 ≤ X 2 y 1 ≤ y 2 A[x 2 ][y 2 ] < A[x 1 … Continue reading «Contar pares de inversión en una array»

Programa Php para contar inversiones de tamaño tres en una array dada

Dada una array arr[] de tamaño n. Tres elementos arr[i], arr[j] y arr[k] forman una inversión de tamaño 3 si a[i] > a[j] >a[k] e i < j < k. Encuentre el número total de inversiones de tamaño 3. Ejemplo:   Input: {8, 4, 2, 1} Output: 4 The four inversions are (8,4,2), (8,4,1), (4,2,1) and … Continue reading «Programa Php para contar inversiones de tamaño tres en una array dada»

Árbol indexado binario bidimensional o árbol Fenwick

Requisito previo: Fenwick Tree Sabemos que para responder consultas de suma de rango en una array 1-D de manera eficiente, el árbol indexado binario (o Fenwick Tree) es la mejor opción (incluso mejor que el árbol de segmentos debido a que requiere menos memoria y es un poco más rápido que el árbol de segmentos). … Continue reading «Árbol indexado binario bidimensional o árbol Fenwick»

Contar inversiones de tamaño tres en una array dada

Dada una array arr[] de tamaño n. Tres elementos arr[i], arr[j] y arr[k] forman una inversión de tamaño 3 si a[i] > a[j] >a[k] e i < j < k. Encuentre el número total de inversiones de tamaño 3. Ejemplo :  Input: {8, 4, 2, 1} Output: 4 The four inversions are (8,4,2), (8,4,1), (4,2,1) … Continue reading «Contar inversiones de tamaño tres en una array dada»

Árbol indexado binario: actualizaciones de rango y consultas de puntos

Dada una array arr[0..n-1]. Es necesario realizar las siguientes operaciones. actualizar (l, r, val) : agrega ‘val’ a todos los elementos en la array desde [l, r]. getElement(i) : Encuentra el elemento en la array indexada en ‘i’. Inicialmente, todos los elementos de la array son 0. Las consultas pueden estar en cualquier orden, es … Continue reading «Árbol indexado binario: actualizaciones de rango y consultas de puntos»

Consultar la cantidad de colores distintos en un subárbol de un árbol de colores usando BIT

Requisitos previos: BIT , DFS Dado un árbol enraizado T, con ‘n’ Nodes, cada Node tiene un color indicado por la array color[](color[i] denota el color del i-ésimo Node en forma de número entero). Responder a las consultas ‘Q’ del siguiente tipo:  distintiva u – Imprime el número de Nodes de distintos colores bajo el … Continue reading «Consultar la cantidad de colores distintos en un subárbol de un árbol de colores usando BIT»

Contar triángulos en un espacio rectangular usando BIT

Requisito previo: BIT (Binary Indexed Tree o Fenwick Tree) , BIT 2D Dado un plano 2D, responda a las consultas Q, cada una del siguiente tipo:  Insertar xy : inserta una coordenada de punto (x, y). Triángulo x1 y1 x2 y2 – Imprime el número de triángulos que se pueden formar, uniendo los puntos dentro … Continue reading «Contar triángulos en un espacio rectangular usando BIT»

Contar inversiones en una array | Conjunto 3 (usando BIT)

El conteo de inversión para una array indica qué tan lejos (o cerca) está la array de ser ordenada. Si la array ya está ordenada, el recuento de inversión es 0. Si la array está ordenada en orden inverso, el recuento de inversión es el máximo. Dos elementos a[i] y a[j] forman una inversión si a[i] … Continue reading «Contar inversiones en una array | Conjunto 3 (usando BIT)»