Técnica de descomposición Sqrt (o raíz cuadrada) | Serie 1 (Introducción)

La técnica de descomposición Sqrt (o raíz cuadrada) es una de las técnicas de optimización de consultas más comunes que utilizan los programadores de la competencia . Esta técnica nos ayuda a reducir la complejidad del tiempo en un factor de sqrt(n) . El concepto clave de esta técnica es descomponer una array dada en pequeños … Continue reading «Técnica de descomposición Sqrt (o raíz cuadrada) | Serie 1 (Introducción)»

Árbol de segmento bidimensional | Suma de subarray

Dada una array rectangular M[0…n-1][0…m-1] , y se solicitan consultas para encontrar la suma / mínimo / máximo en algunos sub-rectángulos M[a…b][e…f] , como así como consultas para la modificación de elementos de array individuales (es decir , M[x] [y] = p ). También podemos responder consultas de subarrays utilizando el árbol indexado binario bidimensional … Continue reading «Árbol de segmento bidimensional | Suma de subarray»

XOR de un subarreglo (rango de elementos) | conjunto 2

Dada una array entera arr[] de consultas de tamaño N y Q. Cada consulta tiene la forma (L, R) , donde L y R son índices de la array. La tarea es encontrar el valor XOR del subarreglo arr[L…R] .  Ejemplos:   Entrada: arr[] = {2, 5, 1, 6, 1, 2, 5} consulta[] = {{1, 4}}  … Continue reading «XOR de un subarreglo (rango de elementos) | conjunto 2»

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)»

Número de elementos menores o iguales a un número dado en un subarreglo dado | Conjunto 2 (incluidas las actualizaciones)

Dada una array ‘a[]’ y un número de consultas q habrá dos tipos de consultas Actualización de consulta 0 (i, v): dos números enteros i y v, lo que significa establecer a [i] = v Consulta 1 cuenta (l, r, k): Necesitamos imprimir el número de enteros menores que iguales a k en el subarreglo … Continue reading «Número de elementos menores o iguales a un número dado en un subarreglo dado | Conjunto 2 (incluidas las actualizaciones)»

Extensión común más larga / LCE | Conjunto 2 (Reducción a RMQ)

Requisitos previos:  Array de sufijos | conjunto 2 algoritmo de kasai El problema de la extensión común más larga (LCE) considera una string s y calcula, para cada par (L , R), la substring más larga de s que comienza tanto en L como en R. En LCE, en cada una de las consultas que … Continue reading «Extensión común más larga / LCE | Conjunto 2 (Reducción a RMQ)»

Intervalo más grande en una array que contiene el elemento X dado para consultas Q

Dada una array arr[] de N elementos y Q consultas de la forma [X] . Para cada consulta, la tarea es encontrar el intervalo más grande [L, R] de la array tal que el elemento más grande en el intervalo sea arr[X] , tal que 1 ≤ L ≤ X ≤ R . Nota: La array … Continue reading «Intervalo más grande en una array que contiene el elemento X dado para consultas Q»

Consultas para encontrar el límite inferior de K de Prefix Sum Array con actualizaciones usando Fenwick Tree

Dada una array A[ ] que consta de enteros no negativos y una array Q[ ][ ] que consta de consultas de los siguientes dos tipos: (1, l, val): actualice A[l] a A[l] + val . (2, K): encuentre el límite inferior de K en la array de suma de prefijos de A[ ] . … Continue reading «Consultas para encontrar el límite inferior de K de Prefix Sum Array con actualizaciones usando Fenwick Tree»

Entero máximo ocurrido en n rangos | Conjunto-2

Dados N rangos de LR. La tarea es imprimir el número que ocurre el número máximo de veces en los rangos dados. Nota: 1 <= L <= R <= 10 6 Ejemplos:   Entrada: rango[] = { {1, 6}, {2, 3}, {2, 5}, {3, 8} }  Salida: 3  1 ocurre en 1 rango {1, 6}  2 ocurre … Continue reading «Entero máximo ocurrido en n rangos | Conjunto-2»

Número de formas de obtener cada número en el rango [1, b+c] sumando dos números en el rango [a, b] y [b, c]

Dados tres enteros a , b y c . Debe seleccionar un número entero del rango [a, b] y un número entero del rango [b, c] y agregarlos. La tarea de calcular el número de formas de obtener la suma de todos los números en el rango [1, b+c]. Ejemplos:  Entrada: a = 1, b … Continue reading «Número de formas de obtener cada número en el rango [1, b+c] sumando dos números en el rango [a, b] y [b, c]»