Este problema es una de las mejores aplicaciones de los árboles de segmentos.
Intente comprender los árboles de segmentos y sus ventajas a partir de las siguientes fuentes
Árbol de segmentos | Conjunto 1 (Suma del rango dado) – GeeksforGeeks
Tutoriales de algoritmos
Construya un árbol de segmentos para la expresión de paréntesis dada. Para construir, puede usar una representación entera para ‘(‘ y ‘)’, digamos +1 o -1. En cada nodo del almacén del árbol, la suma de sus hijos y un valor que identifica de forma única
El par “()” en sus nodos secundarios (esta es la captura).
¿Ahora lo que necesita en el nodo raíz para las expresiones de paréntesis correctas?
Necesitas dos cosas:
1. La suma de todos los nodos hoja es cero
2. El segundo valor también debe ser cero.
Ahora, en caso de reemplazo o actualización, puede aprovechar la eficiencia de los árboles de segmentos. Actualice solo aquellos nodos, que contienen el índice del corchete actualizado.
Como estamos usando una representación entera, reemplácela en consecuencia
(->) entonces +1 ——> -1
) -> (entonces -1 ——> +1
Y nuevamente calcule, la suma y el segundo valor para todo el árbol, ya que cambiará.
- ¿Existe un método para estimar una función exponencial, digamos [math] f (x) = \ mathrm {e} ^ {- x} [/ math] con [math] x [/ math] como número flotante, usando una secuencia de operaciones básicas: suma, resta, multiplicación, división y comparación?
- ¿Cómo se les ocurre la fórmula para la multiplicación de matrices de Strassen?
- ¿Cuál es una explicación de una parte de la derivación del algoritmo de retropropagación?
- ¿Puedes explicar cómo calcular las complejidades temporales de los algoritmos con un ejemplo?
- ¿Hay alguna forma de probar 1 = 0 prácticamente?
¡Todo lo mejor!