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

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

Всем доброго времени суток!

Примерно через месяц состоится двенадцатая ВКОШП.
В связи с этим, есть вопрос. Как готовиться к данному мероприятию?
Возможно не все захотят делиться своими тактиками и и способами подготовки, но всё же :
1. Какие стоит решать задачи?задачи с neerc?Стоит ли прорешивать предыдущие ВКОШП?
2. Какую тактику командного решения вы посоветуете? 1-2 решают, остальные смотрят другие задачи и пишут тесты?Конечно я понимаю, что посоветовать, не зная уровня команды, достаточно сложно. Но уровень у всех троих примерно одинаковый, не скажу что высокий, где то на стыке зёленый - синий на CF.
В прицнипе всё, буду рад любой помощи!
Спасибо.
  • Проголосовать: нравится
  • +17
  • Проголосовать: не нравится

15 лет назад, скрыть # |
 
Проголосовать: нравится +17 Проголосовать: не нравится
У нас в команде система следующая:
  1. В начале контеста один человек логинится в винду, в проверяющую систему, настраивает среду, пишет template.
  2. Остальные два читают условия задач - с конца и с начала.
  3. Как только кто-то решил задачу, то варианта два:
    1. Если совсем тупая и очевидная - выгоняет текущего человека из-за компа, пишет, получает Accepted.
    2. Если задача уже не вида "A+B", то решение рассказывается второму человеку (который сейчас ничего не пишет за компом), если принимается, то придумавший садится писать. В конце код обычно перечитывается двумя членами команды (которые знакомы с решением) для уменьшения количества тупых минусов.
  4. В случае, если с задачей ступор, и есть, что еще написать, код печатается и автор садится читать по бумажке и исправлять/уменьшать код на листочке.
  5. Если придумали очень сложную задачу и комп занят, то обычно код пишется кусками на бумажке
Главное в командной олимпиаде - помните, что у вас есть целых 15 человеко-часов и только 5 компьютеро-часов и использовать все сильные стороны каждого из членов команды. Например, один хорошо решает графы, другой - математику и умеет искать тупые баги, третий пишет и дебажит за две минуты любой код.
  • 15 лет назад, скрыть # ^ |
    Rev. 3  
    Проголосовать: нравится +17 Проголосовать: не нравится

    Есть еще вариант тактики, которую использует tourist.

    1. Прочитать все задачи и для каждой задать число от 2 до 31 - время в минутах, которое понадобится, чтобы ее закодить.

    2. Отсортировать задачи по времени.

    3. Сдавать в этом порядке.

    P.S. Тактика очень сильно зависит от оценки соотношения задача/участник. Когда решалась простая олимпиада, мы по-очереди по-одному задачи сдавали, например. На NEERC я вообще все кодил, у меня это немного быстрее получалось. И т.п. Тогда остальные участники готовили пару злобных тестов, перечитывали все условия, чтобы не было косяков прочтения, и придумывали решения остальных задач (пересказ был отлажен на 100%).

    • 15 лет назад, скрыть # ^ |
       
      Проголосовать: нравится +8 Проголосовать: не нравится
      Что то я не видел что бы tourist прочитывал сразу все задачи.
      В основном, когда открываешь таблицу результатов, у него уже сделано пару Accepted-ов. 

      Вот в этом и мой интерес узнать хорошую тактику, потому что для одного она может быть чем то из области фантастики, а второй напишет довольно быстро и сдаст без минусов
      • 15 лет назад, скрыть # ^ |
        Rev. 3  
        Проголосовать: нравится +15 Проголосовать: не нравится

        Там, видимо, иф время не превосходит 5, то сдать сразу.

        В общем, обычные ошибки:

        1. К концу второго часа не прочитаны все задачи хотя бы двумя участниками.

        2. Постоянное написание кода вдвоем. (Т. е. отдай клаву напишу).

        3. Проговаривание кода при написании вдвоем - тормозит.

        4. Читающий код участник постоянно поправляет пищущего - тормозит. Загрузка читающего должна быть порядка 50%, иначе он используется неэффективно. Момент правок должен быть явно задан пищущим фразой вроде "так" (означает, что логический блок дописан - функция и т.п.)

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

        Дальше - строго индивидуально. Потренируйтесь пару раз и пусть неподалеку посидит более опытный участник (найдите где-нибудь).

  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится
    У нас печальнее, я пишу код, остальные думают над задачей, которую либо не решим вообще, либо я под конец решу, так как велика разница в знаниях. Надеюсь по этой же схеме пройдем через Интернет-тур 30 октября, а там дальше ничего хорошего не светит.
15 лет назад, скрыть # |
 
Проголосовать: нравится -9 Проголосовать: не нравится
1. Вылезти из синезеленого уровня
2. ?????
3. profit
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Так каким образом лучше всего готовиться?Зарешивать кучу задач и прорешивать все online_judge?
  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится +1 Проголосовать: не нравится
    Я для себя выбрал каждый день разбирать по одному алгоритму и оставшееся время решение задач с нарастающей сложностью. И естественно принимать участие во всевозможных контестах
  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится
    Нет лучшего способа, я думаю. Скорее, это зависит от самого человека. Если бы лучший способ был, то все тренировались бы именно так :)
  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится +8 Проголосовать: не нравится
    Можно научиться решать задачи в режиме "подумал вечером, поспал, подумал утром", но, при этом, не научиться решать задачи в стрессовом режиме. Виртуальные контесты лучше, мне кажется, чем нарешивание задач.
    • 15 лет назад, скрыть # ^ |
       
      Проголосовать: нравится +3 Проголосовать: не нравится
      Помню, у меня такое часто бывало. Думаешь, думаешь. Ложишься спать, все равно думаешь и уже когда почти засыпаешь, вдруг приходит правильное решение. Встаешь полусонный и не ложишься пока не заакцептишь :)
15 лет назад, скрыть # |
Rev. 2  
Проголосовать: нравится +17 Проголосовать: не нравится

Вопрос для опытных игроков:

Когда Ваш товарищ, после прочтения какой-то задачи, говорит "Неее, Вась! Ее мы точно не решим, это гроб, давай читать другую...", то Вы:
1) Верите ему на слово и больше не прикасаетесь к этой задаче
2) Читаете задачу сами и решаете, так ли это
3) Я вообще не слушаю сокомандников, они вечно бред несут, ведь решить можно все
15 лет назад, скрыть # |
Rev. 2  
Проголосовать: нравится +7 Проголосовать: не нравится

Такой вопрос опытным участникам: если в команде есть человек, который...хм, несколько послабее других, то чем полезно его занять?

UPD всем спасибо за ответы, некоторые идеи взял на заметку

15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
мы например со своей командой частенько пишем контесты , берем задачки из neerc.ifmo.ru/school/ . Соревнуясь с командами нашей школы . дорешиваем , иногда делаем разбор задач которые важные или просто даем идею как решать . 
15 лет назад, скрыть # |
 
Проголосовать: нравится +1 Проголосовать: не нравится

Как по мне, надо провести большое количество командных тренировок, на которых самостоятельно выбрать из нескольких вариантов поведения более подходящие. Относительно каждой составляющей контеста. 

Так как то, что одним подходит, другим может и не подойти. Если видите, что такой-то способ вам не подходит - ищете такой, который подойдет.

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