Тема: timus 1655
Здравствуйте!
http://acm.timus.ru/problem.aspx?space=1&num=1655
Собственно вопрос как решать? Дело в том что не первый раз встречаю данную задачу (похожие очень есть) и вот как ее решать эффективно не знаю....
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
MAXimal :: φορυμ » Problems » timus 1655
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Здравствуйте!
http://acm.timus.ru/problem.aspx?space=1&num=1655
Собственно вопрос как решать? Дело в том что не первый раз встречаю данную задачу (похожие очень есть) и вот как ее решать эффективно не знаю....
Я эту задачу не решил, но по-моему это можно сделать так:
Отсортируем всех пиратов по азимуту. Теперь в любой момент времени потоплены будут все пираты на какой-то дуге окружности, проходящей через начальную точку(потому что если можно потопить пирата, то это надо сделать и хуже от этого не станет).
Таким образом у нас будет состояние динамики - (левая граница отрезка, правая граница отрезка, с какой стороны этого отрезка мы находимся). Хранится будет минимальное время, за которое всех можно на этом отрезке потопить, при этом не подпустив никого близко, или бесконечность. Для ответа надо перебрать все отрезки, покрывающие все корабли.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
MAXimal :: φορυμ » Problems » timus 1655