Про игру в дырки, или Почему победитель не должен набирать максбалл
Суть поста вкратце: я считаю, что на олимпиадах, целью которых (хотя бы отчасти) является выявление победителя, задачи должны быть составлены так, чтобы победитель не набрал максбалл — победитель должен скорее набирать процентов 70-80.
(Этот пост был опубликован мною на Codeforces примерно 2.5 года назад. Сейчас я решил его скопировать сюда.)
…Давным-давно, когда я еще учился в школе, я слышал такое утверждение: задачи на олимпиаде по математике подобраны хорошо, если победитель набирает максимальный балл, и при этом победитель единственный.
Не знаю, как для математики (хотя не вижу, почему аргументация ниже не применима к математике), но, на мой взгляд, это не самый правильный подход для информатики. Основная причина — когда задачи составляются таким образом, цена ошибки резко возрастает.
Фактически, утверждение «победитель набирает максбалл» эквивалентно утверждению «для победы надо решить все». Это обозначает, что у участников, претендующих на победу, нет права на ошибку. Любая мелкая ошибка, любая немного недодуманная идея — и у участника не максбалл, и победителем станет кто-то другой, кто этой ошибки не допустит.
При этом тот факт, что один допустил ошибку, а другой нет, вовсе не обозначает, что второй сильнее. Может быть, первый умеет решать более сложные задачи, может быть, он на самом деле допускает ошибки реже, но вот тут попалась нелюбимая тема, затупил, или просто рандом лег так, что он допустил ошибку, а другой нет.
Если бы на олимпиаде были бы еще дополнительные задачи, вполне может быть, что первый участник смог бы решить больше, но в ситуации, когда второй решает всё, первому не остается ничего, кроме как добивать эти последние баллы.
То, что получается, в Что-Где-Когда называется «игра в дырки» — «игра на слишком лёгком пакете вопросов, когда неправильный ответ на один вопрос потом чрезвычайно трудно компенсировать и догнать конкурентов» (http://mak-chgk.ru/metod/sleng/). В ЧГК это очень меткий термин: если вопросы в пакете простые, важным становится не то, какие вопросы взяла какая команда, а какие вопросы какая команда не взяла.
Поэтому я считаю, что в олимпиадах задачи должны быть намеренно подготовлены так, чтобы даже победитель не решал всё. Идеальная ситуация в плане определения победителя, имхо — это когда победитель набирает половину баллов. Именно здесь, кажется, результаты олимпиады обладают наибольшей точностью и различные случайные эффекты меньше всего влияют на итоговые результаты. (Действительно, в силу изложенного выше, плохо, если победитель решает всё или почти всё; с другой стороны, очевидно, что если даже победитель не решает почти ничего, то победитель тоже будет случайным — просто кому чуть больше повезло набрать на гробовых задачах. Поэтому нужно что-то среднее.)
Но целью олимпиады обычно является определение не только победителя, но и призеров, поэтому мне представляется разумным, чтобы победитель набирал процентов 70-80 от максимума: это не слишком близко к максимуму, но также и позволяет вести довольно разумную борьбу за последующие места.
Конечно, такой принцип про проценты недостаточно просто так вслепую применять. Те задачи, которые победитель не решает, должны быть все-таки доступны; бессмысленно давать совсем гробовые задачи, которые точно не решит никто. Дополнительные задачи нужны не «для галочки», а для того, чтобы у сильных школьников был выбор, что решать. Вообще, совсем идеально (хотя и довольно сложно подготовить) — если каждую задачу кто-то решил полностью, но при этом у победителя только 70-80% баллов.
Также, конечно, всё вышесказанное относится в первую очередь к олимпиадам, явно направленным на определение победителя. Существует много олимпиад, не ставящих целью определение победителя. Например, такими являются раунды codeforces, или многочисленные «поступательные» олимпиады — не так важно, кто конкретно выиграет «поступательную» олимпиаду, важно, кто получит дипломы, т.к. именно они являются основной ценностью.
Вообще, на поступательных олимпиадах я бы по аналогичным причинам считал, что разумный набор задач должен быть таким, чтобы граница дипломов проходила в районе 50% баллов (точнее, т.к. есть два типа дипломов — то граница одного типа где-нибудь в районе 70-80 процентов, а другого типа — в районе 30-50). Аналогичные соображения относятся к олимпиадам, основной целью которых является отбор куда-либо (разные отборочные туры, а также школьные и муниципальные этапы в тех школах/регионах, где победа на этих этапах не считается особым достижением, и т.п.) — проходной балл в идеале должен быть в районе 50% от максбалла.
Аналогично, еще одна ситуация, когда победитель вполне может набирать максбалл — это если заранее понятно, что среди участников есть один, который на две головы сильнее всех остальных. Тогда нет большого смысла делать для него гробы (хотя и можно), пусть он себе набирает максбалл, но пусть тогда второе место (раз уж именно за второе место будет основная борьба) вот как раз и набирает процентов 70-80.
(В общем-то, эти мысли у меня уже были давно, лет пять-десять как минимум, и я давно хотел написать этот пост, но все руки не доходили.)
(Кстати, казалось бы, аналогичные соображения применимы и к другим ситуациям. Вот, например, собеседования в IT-компании. По аналогичным соображениям представляется разумным, чтобы собеседование готовилось бы так, чтобы сотрудник того уровня, которого они хотят нанять, решал бы половину задач — иначе они рискуют нанять не действительно лучшего, а просто того, кому больше повезло.)
(UPD от 2018 года: основной текст был написан весной 2016 года, когда у меня не было особого опыта проведения собеседований. Сейчас мне очевидно существенное отличие собеседований от соревнований: программу собеседований можно оперативно подстраивать, учитывая результаты кандидата на первых задачах. Кандидату, который не очень успешно порешал первую задачу, можно дать задачу попроще; кандидату, который с ходу решил первую задачу, дать задачу посложнее. При этом каждый кандидат решит явно больше половины, но это не противоречит написанному в посте.)
Мой курс по алгоритмическому программированию (и подготовке к олимпиадам) для школьников, студентов и всех желающих — algoprog.ru