Programa C++ para consultas para encontrar subarreglos contiguos de suma máxima de longitud dada en una array giratoria

Dada una array arr[] de N enteros y Q consultas de la forma {X, Y} de los siguientes dos tipos: Si X = 1 , gire la array dada a la izquierda en Y posiciones. Si X = 2 , imprima el subarreglo de suma máxima de longitud Y en el estado actual del arreglo. … Continue reading «Programa C++ para consultas para encontrar subarreglos contiguos de suma máxima de longitud dada en una array giratoria»

Programa C++ para consultas LCM de rango

Dada una array de enteros, evalúe consultas de la forma LCM(l, r). Puede haber muchas consultas, por lo tanto, evalúe las consultas de manera eficiente.   LCM (l, r) denotes the LCM of array elements that lie between the index l and r (inclusive of both indices) Mathematically, LCM(l, r) = LCM(arr[l], arr[l+1] , ……… , … Continue reading «Programa C++ para consultas LCM de rango»

Maximice el producto de la suma y la potencia mínima eligiendo como máximo elementos K de arrays de valores y potencias dadas

Dadas dos arrays arr[] y powr[] de tamaño N y un entero K . Cada elemento arr[i] tiene su respectivo poder powr[i] . La tarea es maximizar el valor de la función dada eligiendo como máximo K elementos de la array. La función se define como: f(N) = (arr[i 1 ] + arr[i 2 ] … Continue reading «Maximice el producto de la suma y la potencia mínima eligiendo como máximo elementos K de arrays de valores y potencias dadas»

Suma de múltiplos de elementos de Array dentro de un rango dado [L, R]

Dada una array arr[] de enteros positivos y dos enteros L y R , la tarea es encontrar la suma de todos los múltiplos de los elementos de la array en el rango [L, R] . Ejemplos:  Entrada: arr[] = {2, 7, 3, 8}, L = 7, R = 20  Salida: 197  Explicación:  En el … Continue reading «Suma de múltiplos de elementos de Array dentro de un rango dado [L, R]»

Consultas de rango para contar elementos que se encuentran en un rango dado: Algoritmo de MO

Dada una array arr[] de N elementos y dos números enteros A a B , la tarea es responder Q consultas, cada una de las cuales tiene dos números enteros L y R. Para cada consulta, encuentre el número de elementos en el subarreglo arr[L…R] que se encuentra dentro del rango A a B (inclusive). … Continue reading «Consultas de rango para contar elementos que se encuentran en un rango dado: Algoritmo de MO»

Consultas para calcular AND bit a bit de una array con actualizaciones

Dada una array arr[] que consta de N enteros positivos y una array 2D Q[][] que consta de consultas del tipo {i, val} , la tarea de cada consulta es reemplazar arr[i] por val y calcular el Bitwise Y de la array modificada. Ejemplos: Entrada: arr[] = {1, 2, 3, 4, 5}, Q[][] = {{0, … Continue reading «Consultas para calcular AND bit a bit de una array con actualizaciones»

Tabla dispersa

Hemos discutido brevemente la tabla dispersa en Consulta mínima de rango (descomposición de raíz cuadrada y tabla dispersa) El concepto de tabla dispersa se usa para consultas rápidas en un conjunto de datos estáticos (los elementos no cambian). Hace un preprocesamiento para que las consultas puedan ser respondidas de manera eficiente.   Problema de ejemplo 1: … Continue reading «Tabla dispersa»

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

Consultas para actualizar un índice dado y encontrar gcd en el rango

Dada una array arr[] de N enteros y consultas Q . Las consultas son de dos tipos:  Actualice un índice dado por X . Encuentre el gcd de los elementos en el rango de índice [L, R] . Ejemplos:   Entrada: arr[] = {1, 3, 6, 9, 9, 11}  Consulta de tipo 2: L = 1, … Continue reading «Consultas para actualizar un índice dado y encontrar gcd en el rango»

Fusionar árbol de clasificación (elementos más pequeños o iguales en un rango de fila dado)

Dada una array donde cada elemento es un vector que contiene números enteros ordenados. La tarea es responder a las siguientes consultas: count(start, end, k) : Count the numbers smaller than or equal to k in range from array index ‘start’ to ‘end’. Por conveniencia, consideramos una array bidimensional n * n donde cada fila … Continue reading «Fusionar árbol de clasificación (elementos más pequeños o iguales en un rango de fila dado)»