Максимальная сумма длин прямых в выпуклом многоугольнике с ограничениями - PullRequest
0 голосов
/ 13 мая 2018

Это продолжение вопроса, который я задавал ранее.Но вот полный вопрос:

Рассмотрим два выпуклых многоугольника A и B. Многоугольник B полностью лежит внутри многоугольника A. Есть две линии с разными уклонами (оба фиксированных уклона), так что они имеют одну общую конечную точкуна или внутри B, а их другие конечные точки (будут другими) лежат на границе A.

Как бы вы нашли эту общую конечную точку внутри или на многоугольнике B, если ваша цель - максимизировать суммудлины этих двух линий?

1 Ответ

0 голосов
/ 29 мая 2018

Очевидно, что первая конечная точка должна быть на границе B. Если мы найдем самую дальнюю точку A для каждой точки границы B, у нас будет решение немедленно.Предположим, что x лежит на или внутри A, а y лежит на границе B, и они являются самой дальней парой.На данный момент мы можем сообщить (x,x+epsilon,y) как наше решение.Это означает, что если вы начинаете с «y» и двигаетесь в направлении «xy», вы можете получить самую дальнюю точку от «y».Таким образом, «х» также должен лежать на границе, конечно же, на границе B. Таким образом, ваш вопрос был сокращен, чтобы найти самую дальнюю пару, одну точку на границе A, а другую на B. В остальном вы можете сделатьбинарный поиск на каждом ребре A и B, чтобы найти то, что мы хотим.Требуется O (n ^ 2 log ^ 2 n).Конечно, вы можете запустить лучший алгоритм для последнего шага, чтобы получить лучшее время выполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...