E119. Tarea RMQ (Range Minimum Query - минимум на отрезке)
Источник: e-maxx.ru/algo, страница PDF 393.
Дан arreglo A[1..N]. Поступают запросы вида (L, R), на каждый запрос it is required find минимум в arregloе A, начиная с позиции L и заканчивая позицией R.
Приложения
Помимо непосредственного Applications в самых разных Tareaх, можно отметить следующие:
● Tarea LCA (Lowest common ancestor)
Solución
Tarea RMQ решается с помощью структур данных. Из описанных на сайте структур данных можно выбрать:
● Sqrt-декомпозиция - отвечает на запрос за O (sqrt (N)), препроцессинг за O (N).
Преимущество в том, что это очень простая структура данных. Недостаток - Asymptotic complexity.
● Segment tree - отвечает на запрос за O (log N), препроцессинг за O (N).
Преимущество - хорошая Asymptotic complexity. Недостаток - бОльший объём кода по сравнению с другими структурами данных.
● Fenwick tree - отвечает на запрос за O (log N), препроцессинг за O (N log N)
Преимущество - очень быстро пишется и работает тоже очень быстро. Но значительный недостаток - Fenwick tree может отвечать только на запросы с L = 1, что для многих приложений неприменимо. Примечание. "Препроцессинг" - это предварительная обработка arregloа A, фактически это построение структуры данных для данного arregloа. Теперь предположим, что arreglo A может изменяться в процессе работы (т.е. также будут поступать запросы об изменении значения в некотором отрезке [L;R]). Тогда полученную задачу можно решить с помощью Sqrt-декомпозиции и Дерева отрезков.
C# solución
borrador automático, revisar antes de enviar// C# draft for: Задача RMQ (Range Minimum Query - минимум на отрезке)
// Original e-maxx article has no compact code listing in the extracted PDF text.
C++ solución
coincidente/original// C++ source for: Задача RMQ (Range Minimum Query - минимум на отрезке)
// Compact code block was not extracted from this article.
Java solución
borrador automático, revisar antes de enviar// Java draft for: Задача RMQ (Range Minimum Query - минимум на отрезке)
// Original e-maxx article has no compact code listing in the extracted PDF text.
Материал разбит как Algoritmoическая Tarea: изучить постановку, понять асимптотику и реализовать Algoritmo на выбранном языке.
Vacantes para esta tarea
Se muestran vacantes activas con etiquetas coincidentes.