Блог пользователя dalex

Автор dalex, 5 лет назад, По-русски

Всем привет.

Можете ли вы представить, что монитор (тот, который положение участников контеста, а не который надо разбивать после этого контеста) может быть вреден? На самом деле такое встречается нечасто, но в этом посте мы разберем два таких примера, а также попробуем предложить возможное решение этой проблемы. По идее, для MikeMirzayanov не должно быть проблемой реализовать эту фичу.

Итак, первый пример, 2015 год, четвертьфинал Южного региона в Саратове. Пруфы тут будут такие себе, так как контест куда-то исчез с CF. Вот тут этот контест был, когда я его писал: https://codeforces.net/contest/589 (можете глянуть 14-ую страницу моих посылок, там еще задачи были пошаффлены), вот анонс: https://codeforces.net/blog/entry/20989, а сейчас ссылки на задачи ведут в тренировку с id 102042, закрытую от всех. Непорядок! Тем не менее, постараюсь рассказать, что там было.

Официальные стендинги: http://neerc.ifmo.ru/archive/2015/southern/standings.html Мы видим на первом месте с 11 задачами команду Нижнего Новгорода, на голову сильнее остальных (так оно и было на самом деле). Но давайте себя поставим на место одной из команд, решивших 7 задач. Вопрос: на часах 3:00, два часа до конца. Какую задачу решать восьмой по счету?

Мы видим, что все команды, пытавшиеся сдать 8-ую задачу, пробовали сдать задачу I. Именно задачу I сдала восьмой по счету команда Нижнего Новгорода. Между тем, когда этот контест проводился на Codeforces через пару дней после четвертьфинала, почти все команды из фиолетовых-желтых участников решили 8+ задач, а восьмой они сдали задачу, которая в официальном мониторе обозначена как G. Кроме того, команды, решившие 9 задач, примерно поровну сдавали I и K из официального монитора (к примеру, мы тогда сдали 9 задач, и девятой сдали именно K). Пруфов, как я уже написал, не будет, так как контест куда-то удалили.

Ошибка всех команд с онсайта состояла в том, что они пытались следовать за командой, в составе которой были vepifanov и KAN. Для этих ребят сложность 8-10 задач была примерно одинаковая: примерно very easy. Но для более слабых участников это вовсе не так! Им не стоило копировать порядок задач, стоило подумать своей головой, а не смотреть в монитор. И тогда бы они обнаружили и то, что G халява, и то, что K не очень то уж и сложнее I.

В случае с четвертьфиналом Южного региона 2015 правда о сложности задач хотя бы вскрылась на зеркале, но вот второй пример меня полностью поразил. Это случилось совсем недавно, когда мы выложили контест, проводившийся в этом году в Самаре: https://codeforces.net/gym/102215, анонс: https://codeforces.net/blog/entry/67178 Результаты как онсайта, как зеркала, так и того, что в нем происходило потом, в виртуальных участиях, абсолютно неадекватны. Не в том плане, что слабые обгоняют сильных, а в плане порядка решения задач. Постараюсь не особо спойлерить.

В принципе, что на онсайте, что в зеркале происходило одного и то же. Итак, начинается контест, и желтые участники начинают решать задачи по порядку. Читают первую — сдают за 10-15 минут. Читают вторую — она еще легче, сдают за 5-10 минут. Читают третью — тоже легкая, тоже сдают. Читают четвертую — ну тут конечно кода побольше, но тоже легкая, сдают уже за 20 минут. И так далее.

А между тем зеленые видят монитор и недоумевают, а чего это контест какой сложный. Почему вторая по сложности задача какая сложная, на нее полчаса нужно! А на третью еще полчаса, а на четвертую целый час! Ответ прост: не нужно следовать за теми, кто намного сильнее тебя. Для желтых почти все задачи в этом контесте легкие, желтые решают их буквально с прочтения. Как минимум три задачи, сложность которых я оцениваю как very easy, остаются почти неоткрытыми до третьего/четвертого часа, где их обнаруживают желтые после того, как они решили намного более сложные задачи. А на онсайте одну из этих very easy задач вообще first-accept-нул участник, решивший ТОЛЬКО эту задачу.

Я думаю, если написать этот контест, сначала прочитав все задачи, а потом вообще не смотря в монитор, результат будет лучше, чем если бы вы использовали монитор по назначению. И точно не будет (цитата) туплю, чтобы мне на четвёртом часу таблица предложила [решить задачу уровня Div2B]. Если вы слабо-желтый и ниже, можете попробовать, а потом взглянуть на таблицу и, мягко говоря, удивиться.

Ну а теперь feature request. Нужно добавить два параметра в монитор — верхнюю и нижнюю границу рейтинга участников, показываемых в мониторе и внизу монитора (там, где говорят, сколько человек какую задачу решило). В принципе, можно только верхнюю. Например, я бы поставил себе верхнюю границу 2300 или 2400 и мне бы это отлично подошло — мне неважно, сколько там решил условный турист, это для меня не показатель. Турист может решить за 5 минут то, что я не решу за 5 часов. Намного более важно, какие задачи решают люди, равные и чуть более сильные по скиллу (ну а более слабые точно не помешают). Сделаем результаты более адекватными!

  • Проголосовать: нравится
  • +31
  • Проголосовать: не нравится

»
5 лет назад, # |
  Проголосовать: нравится +55 Проголосовать: не нравится

Вы пишите,что основная проблема в том, что неопытные участники слишком привыкли рассчитывать на монитор. Ваше решение, сделать еще более специализированный монитор, на который неопытные участники будут еще больше рассчитывать, чем на предыдущий. ( Хм звучит странно).

Если это только для более продуктивной тренировки, то часть тренировки — это уметь выбирать задачи. Я не очень понимаю, как это решит потом проблему с теми же командами на Самарских контестах или на чф (примеры из блога), я сомневаюсь что вы и туда хотите добавить специальный монитор, особенно на чф.

  • »
    »
    5 лет назад, # ^ |
      Проголосовать: нравится +3 Проголосовать: не нравится

    На онсайте никак не решит, придется эту функциональность эмулировать самостоятельно. Но мне кажется, это позволит показывать лучшие результаты в тренировках и на раундах.

    На онсайте было бы неплохо просто исключать некоторые команды из монитора. Галочку поставил/убрал — команда появилась/исчезла.

    Вот, собственно, на Южном чф 2019 будет одна команда, которую в мониторе лучше не видеть. Ее, наверное, можно будет с помощью полосы прокрутки скрыть :)

»
5 лет назад, # |
  Проголосовать: нравится +56 Проголосовать: не нравится

А как же не просто смотреть, что задачу сдали, а делать выводы в зависимости от того, кто сдал?

"О, задачу одним из первых сдал adamant. Значит тут суффиксная структура какая-то"
"А тут квадрат проходит если постараться. MrDindows же затолкал её как-то"
"Эту можно сдавать. Её даже эти дятлы смогли решить"

  • »
    »
    5 лет назад, # ^ |
      Проголосовать: нравится +3 Проголосовать: не нравится

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

    Да даже и первые два будут работать, если сделать, чтоб в результатах друзей внизу показывали бы пофильтрованные цифры. Видимо, это само собой получится, если предложенная фича будет сделана.

»
5 лет назад, # |
  Проголосовать: нравится +13 Проголосовать: не нравится

Ну, даже когда мы тренируемся (а мы самая, что ни на есть, зеленая команда), мы смотрим на монитор всегда через призму того, кто именно сдает. Очень легко попасться на задачу, которую сильные команды действительно сдают раньше более легких просто потому, что и она для них сложности не представляет, а до задач полегче они банально "не дочитали".

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

Так что не думаю, что апдейт монитора станет каким-то крутым подспорьем. Гораздо продуктивнее (особенно для командных соревнований) тренировать распределение времени и чтение задач, а монитором пользоваться в любом случае очень аккуратно.