Estructuras de datos de conjuntos disjuntos

Considere una situación con varias personas y las siguientes tareas que deben realizarse en ellas.  Agregue una nueva relación de amistad, es decir, una persona x se vuelve amiga de otra persona y. Averigüe si el individuo x es amigo del individuo y (amigo directo o indirecto) Ejemplo:   We are given 10 individuals say, a, … Continue reading «Estructuras de datos de conjuntos disjuntos»

Consultas de rango y suma de actualización con factorial

Dada una array arr[] de N enteros y un número de consultas Q . La tarea consiste en responder a tres tipos de consultas. Actualizar [l, r] : por cada i en el rango [l, r] incremente arr[i] en 1 . Actualizar [l, val] : cambia el valor de arr[l] a val . Consulta [l, … Continue reading «Consultas de rango y suma de actualización con factorial»

Encuentre la suma de la array usando Bitwise OR después de dividir la array dada en dos mitades después de K cambios circulares

Dada una array A[] de longitud N , donde N es un número par, la tarea es responder Q consultas independientes donde cada consulta consiste en un número entero positivo K que representa el número de desplazamientos circulares realizados en la array y encontrar la suma de elementos realizando la operación Bitwise OR en la … Continue reading «Encuentre la suma de la array usando Bitwise OR después de dividir la array dada en dos mitades después de K cambios circulares»

Consultas para actualizar Subarrays de un Array dado usando Disjoint Set

Dada una array arr[] que consta de N enteros, que consta solo de 0 inicialmente y consultas Q[][] de la forma {L, R, C} , la tarea para cada consulta es actualizar el subarreglo [L, R ] con valor C . Imprime la array final generada después de realizar todas las consultas. Ejemplos: Entrada: N … Continue reading «Consultas para actualizar Subarrays de un Array dado usando Disjoint Set»

Cuente los pares que tienen XOR bit a bit mayor que K de una array dada

Dada una array arr[] de tamaño N y un número entero K , la tarea es contar el número de pares de la array dada de modo que el XOR bit a bit de cada par sea mayor que K .   Ejemplos: Entrada: arr = {1, 2, 3, 5} , K = 2  Salida: 4  … Continue reading «Cuente los pares que tienen XOR bit a bit mayor que K de una array dada»

Programa Java para encontrar la suma de la array usando Bitwise O después de dividir la array dada en dos mitades después de K cambios circulares

Dada una array A[] de longitud N , donde N es un número par, la tarea es responder Q consultas independientes donde cada consulta consiste en un número entero positivo K que representa el número de desplazamientos circulares realizados en la array y encontrar la suma de elementos realizando la operación Bitwise OR en la … Continue reading «Programa Java para encontrar la suma de la array usando Bitwise O después de dividir la array dada en dos mitades después de K cambios circulares»

Árbol de intervalos utilizando un contenedor basado en árboles GNU

Considere una situación en la que tenemos un conjunto de intervalos y necesitamos que las siguientes operaciones se implementen de manera eficiente:  Agregar un intervalo Eliminar un intervalo Dado un intervalo x, encuentre si x se superpone con cualquiera de los intervalos existentes. Un árbol de intervalos se puede implementar como un árbol de búsqueda … Continue reading «Árbol de intervalos utilizando un contenedor basado en árboles GNU»

¿Estructura de datos para diccionario y corrector ortográfico?

¿Qué estructura de datos se puede utilizar para crear de forma eficaz un diccionario de palabras y un corrector ortográfico ? La respuesta depende de los funcionalistas requeridos en el corrector ortográfico y la disponibilidad de memoria. Por ejemplo, las siguientes son algunas posibilidades. Hashing es una opción simple para esto. Podemos poner todas las … Continue reading «¿Estructura de datos para diccionario y corrector ortográfico?»

Lista genérica enlazada en C

A diferencia de C++ y Java , C no admite genéricos. ¿Cómo crear una lista enlazada en C que se pueda usar para cualquier tipo de datos? En C, podemos usar un puntero vacío y un puntero de función para implementar la misma funcionalidad. Lo mejor del puntero vacío es que se puede usar para … Continue reading «Lista genérica enlazada en C»

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»