Programa C++ para aplanar una lista enlazada de varios niveles Profundidad Wise-Set 2

Hemos discutido el aplanamiento de una lista enlazada de varios niveles donde los Nodes tienen dos punteros hacia abajo y hacia adelante. En la publicación anterior, aplanamos la lista vinculada por niveles. Cómo aplanar una lista enlazada cuando siempre necesitamos procesar el puntero hacia abajo antes del siguiente en cada Node. Input: 1 – 2 … Continue reading «Programa C++ para aplanar una lista enlazada de varios niveles Profundidad Wise-Set 2»

Clasificación topológica

  La ordenación topológica para el gráfico acíclico dirigido (DAG) es una ordenación lineal de vértices tal que para cada arista dirigida uv, el vértice u viene antes que v en la ordenación. La clasificación topológica de un gráfico no es posible si el gráfico no es un DAG. Por ejemplo, una clasificación topológica del … Continue reading «Clasificación topológica»

Los 10 mejores algoritmos y estructuras de datos para la programación competitiva

  En esta publicación, discutiremos los 10 algoritmos y estructuras de datos más importantes para la codificación competitiva. Temas:  Algoritmos gráficos Programación dinámica Buscando y Ordenando: Teoría de Números y Otras Matemáticas Algoritmos de flujo geométrico y de red Estructuras de datos Los enlaces a continuación cubren los algoritmos más importantes y los temas de … Continue reading «Los 10 mejores algoritmos y estructuras de datos para la programación competitiva»

Compruebe si un gráfico dado está conectado en 2 aristas o no

Dado un grafo no dirigido G , con V vértices y E aristas, la tarea es comprobar si el grafo tiene 2 aristas conectadas o no. Se dice que un grafo tiene 2 aristas conectadas si, al eliminar cualquier arista del gráfico, aún permanece conectado, es decir, no contiene puentes .  Ejemplos:  Entrada: V = … Continue reading «Compruebe si un gráfico dado está conectado en 2 aristas o no»

Tamaño de componente más grande en un gráfico formado al conectar Nodes no coprimos

Dado un gráfico con N Nodes y sus valores definidos en la array A, la tarea es encontrar el tamaño de componente más grande en un gráfico conectando Nodes no coprimos. Una arista se encuentra entre dos Nodes U y V si no son coprimos, lo que significa que el máximo común divisor de A[U] … Continue reading «Tamaño de componente más grande en un gráfico formado al conectar Nodes no coprimos»

Nivel con el número máximo de Nodes usando DFS en un árbol N-ario

Dado un árbol N-ario , la tarea es imprimir el nivel con el número máximo de Nodes. Ejemplos:   Input : For example, consider the following tree 1 – Level 1 / \ 2 3 – Level 2 / \ \ 4 5 6 – Level 3 / \ / 7 8 9 – Level 4 Output … Continue reading «Nivel con el número máximo de Nodes usando DFS en un árbol N-ario»

Número de grupos formados en una gráfica de amigos

Dados n amigos y sus relaciones de amistad, encuentre el número total de grupos que existen. Y la cantidad de formas de nuevos grupos que se pueden formar compuestos por personas de cada grupo existente. Si no se da ninguna relación para ninguna persona, entonces esa persona no tiene grupo y singularmente forma un grupo. Si … Continue reading «Número de grupos formados en una gráfica de amigos»

Mínimos vértices iniciales para atravesar toda la array con condiciones dadas

Nos dan una array que contiene diferentes valores en cada celda. Nuestro objetivo es encontrar el conjunto mínimo de posiciones en la array de modo que toda la array se pueda recorrer a partir de las posiciones del conjunto. Podemos atravesar la array bajo las siguientes condiciones:  Podemos movernos solo a aquellos vecinos que contienen valores … Continue reading «Mínimos vértices iniciales para atravesar toda la array con condiciones dadas»

Imprima recursivamente todas las oraciones que se pueden formar a partir de una lista de listas de palabras

Dada una lista de listas de palabras ¿Cómo imprimir todas las oraciones posibles tomando una palabra de una lista a la vez a través de la recursividad?  Ejemplo:  Input: {{«you», «we»}, {«have», «are»}, {«sleep», «eat», «drink»}} Output: you have sleep you have eat you have drink you are sleep you are eat you are drink … Continue reading «Imprima recursivamente todas las oraciones que se pueden formar a partir de una lista de listas de palabras»

Teorema de paréntesis

El teorema de paréntesis se usa en DFS de gráfico . Establece que los descendientes en un árbol de búsqueda primero en profundidad tienen una propiedad interesante. Si v es un descendiente de u , entonces el tiempo de descubrimiento de v es posterior al tiempo de descubrimiento de u . En cualquier recorrido DFS de … Continue reading «Teorema de paréntesis»