Трек Engine. Советы Бориса Минаева
VK Cup·28 Nov 2019
Мы постарались сделать так, чтобы квалификационный раунд трека по спортивному программированию помог вам познакомиться с платформой Codeforces. Решайте задачи на любом удобном языке программирования. Можно даже разобрать каждый отдельный тест в задаче без использования компьютера.
В отборочном раунде предстоит решить каждую задачу как можно скорее.
Финал соревнования пройдёт по стандартным правилам Codeforces: вы сможете получить баллы не только за быстрое и правильное решение задач, но и за нахождение ошибок в решениях других участников.
Борис Минаев
Задания приготовил Борис Минаев, руководитель Команды баз данных ВКонтакте.
- Решайте задачи в порядке увеличения их сложности. Выбирайте ту, которую сдало больше всего участников.
- Не зацикливайтесь на задаче, если она вам не поддаётся. Сразу поставьте себе ограничение: «Если не продвинусь в решении за 15 минут, то перейду к следующей».
- Тестируйте решение перед посылкой. Обязательно запустите его на граничных случаях. Перед этим перечитайте раздел с ограничениями на входные данные.
- Иногда идею решения можно придумать исходя из ограничений в условии. Например, у вас задача, в которой дано n объектов. Если n < 10, то, возможно, в решении необходимо перебрать все перестановки объектов. Если n < 20, то написать рекурсивный перебор за 2ⁿ. Если n < 1000, то придумать динамическое программирование за n². А если n около миллиона — скорее всего, нужно думать в сторону линейного решения.
- Если вы получили WA, перечитали код несколько раз, а ошибку всё ещё не видите, то попробуйте написать более простое решение. Затем сравните на маленьких тестах, всегда ли исходное и новое решения выдают одинаковый ответ. Если же решаете задачу на неподвешенном дереве, то просто запустите решение ещё раз, но выберите другой корень.
- Используйте среды разработки вроде CLion или IDEA. Они умеют находить стандартные ошибки вроде неинициализированных переменных или недостижимых кусков кода.
- Добавляйте больше assert-ов в ваш код. Находить причину RE гораздо проще, чем WA.
