У меня есть вектор пар длины N. Теперь у меня есть Q запросов типа данного диапазона, скажем, от L до R, найдите минимальное значение второго элемента пары, первый элемент которого равен заданному числу K.
Например:
вектор из 6 элементов
[{2,5}, {8,7}, {2,3}, {8,6}, {2,1}, {8,4}]
Теперь для запроса: L = 3 R = 6 (индексирование на основе 1) и K = 8
Ответ будет -> 4, что соответствует этой паре {8,4}
Ограничения:
Q <= 100000 </p>
N <= 100000 </p>
значение первого и второго элемента пары <= 100000 </p>
Я думал о подходе к сегментному дереву, в основном для каждого уникального «первого» элемента пары, скажем, v1, создайте массив, в котором его элементы состоят из «второго» элемента исходной пары, где значение «первого» элемента равно v1;
Теперь для каждого массива v1 создайте дерево сегментов, в котором хранится минимальный элемент для данного диапазона.
Затем мы можем просто запросить соответствующее дерево сегментов "v1" для вышеуказанной проблемы
Мой подход очень сложный, может кто-нибудь подсказать мне, как эффективно подойти к этой проблеме.