Я пытаюсь решить следующую проблему покрытия.
Есть передатчиков с зоной покрытия 1 км и n приемников. Определите в O ( n log n ), что все приемники охвачены любым передатчиком. Все приемники и передатчики представлены своими координатами x и y .
Самое продвинутое решение, которое я могу найти, - . Для каждого приемника отсортируйте все передатчики по его расстоянию до этого текущего приемника, затем возьмите передатчик с самым коротким расстоянием, и это самое короткое расстояние должно быть в пределах 0,5 км.
Но наивный подход выглядит намного лучше по временной сложности . Просто рассчитайте все расстояния между всеми парами передатчика и приемника.
Я не уверен, что смогу применить алгоритмы поиска диапазона в этой задаче. Например, kd-деревья позволяют нам находить такие диапазоны, однако я никогда не видел такого примера, и я не уверен, есть ли какой-то диапазон поиска кругов.
Ответы:
Для решения этой проблемы вы можете использовать диаграмму Вороного вместе со структурой данных Киркпатрика .
источник