ilyakor's blog

By ilyakor, 12 years ago, In Russian

Всем привет!

При решении нетривиальных задач на контестах существуют два противоположных подхода. Первый (условно назовем его "научный") — полноценно решать математическую задачу, доказывая все факты и идеи; второй ("магический") — надеяться на свою интуицию и не тратить время на формальные доказательства, доверяя утверждениям, которые кажутся правильными. Также ко второму подходу относятся reverse-engineering подходы вроде "что мог иметь в виду этот автор задачи" и "что вообще тут можно закодить за время контеста".

Раньше я всегда считал, что все применяют исключительно первый подход, а второй — удел шаманов-экстремалов. Однако все чаще я встречаю людей, даже не понимающих, зачем могут потребоваться формальные доказательства на контестах; так что моя вера в доминирование "научного" подхода пошатнулась. Но я до сих пор уверен, что область применимости этого подхода гораздо шире, чем шаманского (например, командные соревнования, где время за компом очень дорого; или регулярные контесты с рейтингом, где важна стабильность; ну и в жизни "после" спортивного программирования работать придется именно так). Однако похоже, что "магия" иногда дает более хорошие результаты благодаря увеличению дисперсии (например, для не самых сильных участников на отборах на суровые онсайты: за счет большей дисперсии вероятность попасть в топ-N увеличивается).

Собственно, предлагаю в комментариях к этому посту обсудить преимущества и недостатки обоих подходов, а также собрать статистику, кто каким подходом пользуется. Поскольку голосований на codeforces к сожалению нет, предлагаю использовать первые комментарии к этому посту.

  • Vote: I like it
  • +101
  • Vote: I do not like it