eolymp
bolt
Try our new interface for solving problems
Problems

U-turn bits

published at 3/13/11, 2:32:35 pm

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

awpris replied:
Дабы не подвешивать систему в последние минуты контеста проверим Вашу гипотезу после окончания и по результатам посмотрим. Естественно, проверяться будут не все задачи, а некоторые.
published at 3/13/11, 3:05:04 pm

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

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

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

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

published at 3/13/11, 3:50:26 pm

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

awpris replied:
Очень правильное решение... Удачи!!!
published at 3/14/11, 2:00:04 am

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

awpris replied:
Нужно придумать алгоритм, работающий O(s*k).
published at 3/14/11, 1:05:28 pm

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

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

published at 3/14/11, 2:03:36 pm

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

published at 3/14/11, 4:09:52 pm

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

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

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