eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Разворот битов

опубликовано 13.03.2011, 14:32:35

Смею заявить, что на еолимпе этот контест ещё большая жесть, чем у автора (а в Харькове он был самым гробовым). Связано это, я так понимаю, с тем, что в Харькове машины посильнее. По крайней мере, на харьковском сервере мои решения проходят. А здесь ТЛЕ. Надо бы протестить авторские решения - если они ТЛЕ, то наверно стоит поднять тайм лимит чуть-чуть.

awpris ответил:
Дабы не подвешивать систему в последние минуты контеста проверим Вашу гипотезу после окончания и по результатам посмотрим. Естественно, проверяться будут не все задачи, а некоторые.
опубликовано 13.03.2011, 15:05:04

Наглядна демонстрація (Це авторський розвязок):

Решение #256095 = АС

Максимальное время выполнения: 1.359 секунды из 2 секунды

Відповідно значить все Ок. Допускаю, що обмеження (у порівнянні з авторським) для інших були у Харкові більш поблажливі, але ж там було змагання, а тут вже тренувальний контест і потрібно не просто здати, а знайти ефективний алгоритм, на підставі знань, отриманих у Харкові. Так що ретесту, відповідно, не буде. Удачі!!!

опубликовано 13.03.2011, 15:50:26

Тогда будем оптимизировать.

awpris ответил:
Очень правильное решение... Удачи!!!
опубликовано 14.03.2011, 02:00:04

1.359 секунды из 2 секунды в авторском решении, вряд ли очень хороший выбор Лимита времени. Логично, что нужно побольше запаса от того времени, сколько работает авторское. Ведь автор, как никто другой знает, как решать эту задачу эффективно. Часами пытаться делать неасимптотические оптимизации, это часто выводит из себя. Придумываешь асимптотически правильный алгоритм, реализовываешь, а потом еще приходится код до неузнаваемости изменить, чтобы он начал в 1.2 раза быстрее работать. Я, конечно, не говорю, что константа не важна, я считаю, что нужно хорошо знать, как именно писать, чтобы работало эффективно, но если это портит код, то это не очень хорошо.

awpris ответил:
Нужно придумать алгоритм, работающий O(s*k).
опубликовано 14.03.2011, 13:05:28

Код за O(s*k), который мы всей командой пропихивали в Харькове, получил здесь ТЛЕ. Тогда я сделал ещё один неслабый пропих с типами и получил АС за 1.984. Желаю всем удачи в этом нелёгком деле :)

Решение, которое получает АС по задачам на FFT, использует нерекурсивное FFT?

опубликовано 14.03.2011, 14:03:36

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

опубликовано 14.03.2011, 16:09:52

Для FFT глубина погружения не больше 20. С этим показателем как раз всё в порядке. Мне просто интересно: можно ли дожать рекурсивное решение (если да, то это будет хороший опыт в оптимизации), или нужно писать нерекурсивное (тоже хороший опыт, но в другом направлении).

Прошу прощения за оффтоп, т.к. FFT отностися не к этой задаче, но раз уж зашла речь...

awpris ответил:
Вы имеете возможность сами реализовать и сравнить. Вот ссылка на оба варианта: http://its.lnpu.edu.ua/edocs1/INTUIT.ru/html/department/calculate/clusterexec/6/clusterexec_6.html