Блог пользователя aangairbender

Автор aangairbender, 11 лет назад, По-русски

Здравствуйте, уважаемые знатоки =)
Есть такая задача: дано N точек, N <= 2000; нужно найти трегульник максимальной площади, вершинами которого есть 3 и тех N точек. (Точки уже образуют выпуклый многоугольник и заданы в порядке обхода).
У меня 90/100 баллов.(Решал перебором вершины, а остальные две — двумя указателями).
Хотелось бы услышать советы и желательно код.
P.S.: идея у меня вроде правильная, но вот руки... =D

  • Проголосовать: нравится
  • +20
  • Проголосовать: не нравится

»
11 лет назад, скрыть # |
 
Проголосовать: нравится +22 Проголосовать: не нравится

Читаю заголовок — понимаю, что человеку интересно знать решение задачи или что-то уточнить. Читаю пост, и понимаю, что человек знает решение, да и к тому же рассказал его в посте. Дальше понимаю, что проблема в другом — в коде. А кода нет...

»
11 лет назад, скрыть # |
 
Проголосовать: нравится +14 Проголосовать: не нравится

N^2 * log(N) заходит?

»
11 лет назад, скрыть # |
 
Проголосовать: нравится +37 Проголосовать: не нравится

Извиняюсь за оффтоп, но как вонимать вот это: 8568517, 8572637?

»
11 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Решение за квадрат. Совершенно очевидно, что все три точки лежат на выпуклой оболочке. Перебираем первую, вторую — в порядке обхода, два варианта третьей — указателями. Итого

Возможно, здесь же есть решение за . Кажется, что вторую и третью точку можно подбирать тернарниками, если правильно разбить на отрезки (интуитивная оценка: расстояние до самой удаленной точки вдоль прямой выпукло относительно угла; площадь треугольника есть произведение двух таких расстояний и тоже выпукло; не проверял).