elizarov


Блог Романа Елизарова


Previous Entry Share Next Entry
[topcoder SRM 249] Урок по тактике поведения
elizarov
Очередной topcoder SRM 249 оказался мне не по зубам. По общему результату я занял 89-е место (из ~220 человек участвовавших в Division I). Я обломался не столько из-за сложности задач (несмотря на то, что на второй задаче я сильно затупил), а из-за неумения правильно организовать свою работу в соревновании типа topcoder. В итоге мой рейтинг упал с 2041 до 2014. В общем есть еще чему поучиться.

Первую задачку я написал с нормальной для себя скоростью. А потом долго-долго искал в ней несуществующую багу. Только получив административный broadcast о том, что в условии задачки содержится ошибка (один из тестов неверный) я смог расслабится и послал свое [правильное] решение на сервер.

Оставалось уже не так много времени (минут 40-50) и тут я затупил на второй задаче. Затупил и всё тут (бывает). Не увидел как она сводится к задаче о топологической сортировке и не придумал ничего лучшего как написать перебор. Глупо было тратить на это время, ибо должно было быть очевидно, что вероятность прохождения перебора на такой задаче чрезвычайно мала. Надо было найти в себе решимость оставить эту задачу в покое (раз уж затупил) и приступать к следующей.

А следующая задача оказалась элементарной и стандартной (!) геометрией, вывести площадь выпуклой оболочки точек. При моей сегодняшней скорости написания задач мне потребовалось бы для её решения 15-20 минут. А у меня оставалось меньше 10-и. Кстати, многие из победителей этого соревнования не писали алгоритм поиска выпуклой оболочки, а взяли его из своих личных библиотек программ (это разрешено правилами). Вот оно - реальное преимущество большого опыта участия в этих соревнованиях. Будем набираться ;)

Кстати, после окончания соревнования организаторы еще долго мухлевали с тестами. Перетестировали все решения еще пару лишних раз. Похоже у них был какой-то битый тест, на котором некоторое люди ошибочно валились. После последнего перетестирования кто-то поднялся в таблице результатов, а я откатился с 88-го места на 89-е.

  • 1
А я довольно долго провозился со второй задачкой, но сделал! А на третью мне осталось всего 15 минут и я не успел:( По-моему TopCoder абсолютно не в курсе, какие задачки сложные, а какие нет.

Думаю, было бы круто написать плагин к их приложению в паре с плагином к IDEA и выжать на этом немного преимущества по времени и по автоматическому прогону тестов.

Зачем писать?... FileEdit + CodeProcessor + ExampleBuilder уже написаны.

Заметь, я предложил один продукт из двух частей, а ты из трёх:)

Кстати, в первый раз сегодня использовал эту комбинацию. Удобно. Немного, но все-таки экономит время. Жаль нет готовоый штуки, которая бы генерировала JUnit тест-кейсы. Писать с нуля влом, однако я уже подумываю как можно ExampleBuilder улучшить, чтобы было удобней работать и чтобы там были всякие JUnit-овские штуки типа показывания времени выполнения каждого теста. Если чего-нибудь полезное получиться, то поделюсь.

Перетестировали потому, что были совпадающие точки во многих тестах.

Понятно. Даже могу себе предтставить решения, которые в этом случае сломаются, хотя "хорошим" решениям вроде должно быть все-равно.

Как-то очень уж они сильно облажались в этот раз. Похоже, что в этот раз задачки делал кто-то мало опытный -- баги в 2-х задачах плюс проблемы с сортировкой задач по сложности (хотя это субъективно).

  • 1
?

Log in

No account? Create an account