Как найти верхние конверты пересекаемых линий в O (NLOGN)?

Отказ от ответственности: Да, это домашнее задание, и я думаю об этом на пару дней, но не мог Найти способ пойти.

Так что есть n прямых линий (y = ax + b), и я хочу найти их верхние конверты (смелая деталь на картинке). Это должно быть в O (NLOGN).

Что я понимаю, мне нужно найти способ игнорировать некоторые из линий, потому что, если я ищу все линии, это не будет o (nlogn).

Я думаю о подходе Divide & Conquer, чтобы я мог разделить список на два и рекурсивно продолжаться до решения. Но тогда я не знаю, как избавиться от некоторых линий. Очевидно, мне не нужно учитывать некоторые нижние линии на картинке, потому что их невозможно внести свой вклад в решение. Но ничто не пришло на мой взгляд. Любые подсказки ценятся.

enter image description here

19
задан Bill the Lizard 16 September 2012 в 15:30
поделиться