Обновить
48
tasman@tasman

Пользователь

28
Подписчики
Отправить сообщение
Правильно ли я понял, что "неразворот" определяется по тому, что за "меньшим" (2) следует "больший" (5)? Если так, то видимо я не очень корректно поставил условие задачи. Как я уже заметил в http://www.habrahabr.ru/blog/sport_progr…
над элементами списка порядок не определен, поэтому сказать что (2) меньше (5) нельзя. Фактически есть только указатели, а как их там нам менеджер памяти раздал, в каком порядке - неизвестно.
Список изменяем полностью, но не надо забывать, что в конце надо вернуть его в изначальное состояние. И нету никакой информации что именно хранится в списке и хранится ли что-нибудь вообще(кроме указателя на следующий элемент). Сравнение на равенство разрешено, порядок на них не определен.
Подходит. А если теперь необходимо найти еще и длину "предцикла"?
А как определить что поинтер "неразвернутый"?
Да, моя ошибка, список конечно не закольцованый, а просто имеющий цикл. То есть 1, 2, и так далее, i элементы в цикле могут не состоять.
Скорее не сами координаты городов, но и длинна наибольшего отрезка. Если они не целые, то должна задаваться точность с которой нужно давать ответ. Иначе непонятно когда останавливать бинарный поиск.

И лучше на ты :)
Ну есть вариант который имеет сложность O(N*log(Xn-X1)), где Xn координата последнего города, X1 - первого. Подходит если координаты целые числа или задана точность с которой нужно выдать ответ.

Решение - бинарный поиск с жадным алгоритмом(бинарным поиском перебираем длину наибольшего отрезка от какого-нибудь города до станции, а жадным алгоритмом пытаемся расставить станции так что бы влезть в это ограничение). Но есть подозрение что существет линейной решение. Так ли это?
Я просто пытался дать возможность подумать другим, не рассказывая решения, хотя особо народ не увлекся. По твоей оценке получается O (N x K)? Динамика тоже дает такую сложность, но ttim говорит что можно лучше...
Не 2 в степени N, а 2 умноженное на N :)
В первой задаче динамикой можно решить за O(N*K) и памяти порядка 2*N. Можно лучше?
12 ...
8

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность