У меня есть N прямоугольников со сторонами, параллельными осям x и y. Существует еще один прямоугольник, модель. Мне нужно создать алгоритм, который может определить, полностью ли покрыта модель N прямоугольниками.
У меня есть идеи. Я думаю, что сначала мне нужно отсортировать прямоугольники по левой стороне (это можно сделать в O (n log n)), а затем использовать вертикальную линию подметания.
+------------------------------------------------------------> x
|O
| +----+
| +---------+ | |
| | ++----+--+ |
| | +-++----+-+| |
| | | | +-++-+
| +------+ +-------++
| +---------+
|
|
|
|y
Синим прямоугольником является модель.
Прежде всего, мне нужен абстрактный алгоритм. Особых требований в отношении реализации нет. Прямоугольник может быть представлен в виде пары точек (слева-сверху и снизу-справа).
Это одна из задач подготовки к тесту. Я знаю, что лучший алгоритм может сделать это в O (n log n) времени.