опасные группы отрезков
Условие
Даны отрезки и диапазон . Надо найти количество отрезков , таких что отрезки все отрезки с номерами от до при объединение дадут отрезок по длине в диапазоне .
Решение
Решение
Прочитать о том, как решать класс задач про отрезки можно тут
Сначала декомпозируем задачу на две отдельных более простых. Надо посчитать количество отрезов по длине не больше , а затем из этого количества вычесть количество отрезков с длиной не больше . Рассмотрим как решать задачу по нахождению отрезков , что объединение по длине .
Как понять подходит ли отрезок ? Достаточно взять самую правую среди левых границ и самую левую среди правых, другими словами максимум из левых и минимум из правых. Тогда если максимум не больше минимума отрезок существует. Перепишу более понятнее
Из этого следует монотонность при добавление новых отрезков, так как при этом не уменьшается, а не увеличивается, следовательно не увеличивается. Под добавлением тут подразумевается добавление любого отрезка, но нам лишь нужна монотонность по правой границе.
Монотонность по левой не выполняется. При удаление -го отрезка, не увеличится, а не уменьшится. Из этого следует непонятных характер функции — она как и возрастёт, так и может упасть. Обратное противоречие добавлению, что действительно очевидно.
Значит, если найти максимальный индекс правой границы для фиксированного , обозначим его за . То в ответ можно добавить разницу индексов плюс один, так как для фиксированного подходят любые от до .
Значит достаточно перебрать все левые границы, а правую границу получать каждый раз бинпоиском. Что-бы понять подходит ли отрезок , достаточно взять максимум по правым в массиве правых границ на отрезке и аналогично минимум по массиву из левых границ. Для того чтобы брать минимум за надо воспользоваться разряженной таблицей.
Вы можете не знать, как магически взять минимум значений на отрезке, главное в этой задаче понять, что границы подаются бинпоиску, даже такому неочевидному и понять монотонность границ.
Ассимптотика .
Более общий разбор вы можете найти тут.