[Logo] Форум DL
  [DL]  На главную страницу 
Индекс форума ->Олимпиадное программирование ->Тактика на командных олимпиадах 1, 2, 3
Автор Сообщение
Мастера кода онлайн

Темы: 0
Сообщений: 16

Мой профиль
Плохой код:
Артём:
0. Нет пробелов в выражениях и перед '{'.
1. return в конце void
2. Зануление сразу в глобальных переменных
3. ios и cin.tie не в одной строке - тяжелее комментировать
Саша:
0. ВНУТРЕННОСТИ ФУНКЦИЙ НА РОВНЕ С ЕЁ ОБЪЯВЛЕНИЕМ (без табов)
1. Нет пробелов в операторах (в том числе и ввода), спасибо, что хоть в for (i=0; i<n; i++) между ;.
2. if и {} в одну строку! Разрешается так писать, только разделяя операции ',', но никак не {;;;}. if (1) ++a, b -= a;
3. ios и cin.tie не в одной строке - тяжелее комментировать
4. Нет констант размеров массива + написание его через цифры без разделителей, даже не через 2e5.
5. Использование endl без интерактива
6. Написание long long, даже не ll или long.
7. ВЕСЬ КОД С ТАБА
8. Использование fflush
9. Использование deque
10. Практически никаких пропусков строк между функциями/глобальными переменными/using namespace/define
Михаил Долинский

Темы: 2145
Сообщений: 51644

Мой профиль


Мастера кода онлайн:

Листы для ВКОШП.
Стоит сделать отдельный репозиторий на GitHub или ещё где-нибудь и вместе редактировать их.
0. Алгоритмы:
Макс. клика
Проверка числа на простоту, факторизация
orderedSet
1. Код для проверки на пробнике (пока что просто идеи):
__int128/__int128_t
1'000'000 
А разве так можно?
Мастера кода онлайн

Темы: 0
Сообщений: 16

Мой профиль


Михаил Долинский:

А разве так можно? 

Да, в том году приносили и не только мы - все участники приносят. Если я не ошибаюсь, можно до 20 листов печатного теста брать
Мастера кода онлайн

Темы: 0
Сообщений: 16

Мой профиль
ФПМИ 2 (в хронологическом порядке):
0. Сразу прочитали А, она была давольно лёгкой, но с немного непонятным условием. Договорились посмортеть другие задачи, я ничего не нашёл, а вот Артёму понравилась J, и вместо того, чтобы втроём посидеть над А, быстро понять условие и сдать её, ждали, пока другая команда сдаст А. Из-за этого сдали только через 7.5 минут.
1. Сдали D с +1 - Саша выводил YES/NO вместо Yes/No.
2. После этого 50 минут ничего не отсылали. Когда Саша рассказал условие I, мы быстро её придумали, код был небольшим. Писать сел Саша, но сначала усложнил, реализовав СНМ (при том криво и некрасиво -> медленно его писал). Остальной код, вроде-бы, написал быстро.
3. Следующую задачу написали только через 28 минут - Е. Она была реально стрёмной, я даже хотел её отложить, но Саша придумал формулу, я написал. Не обошлось без +1 - забыли учесть случай, когда формула выдаёт -1 (ответ должен быть от 0). Поняли это только через 38 минут.
4. В 98 мин от начала (через 14 мин после здачи I) Артём решил написать жадник на K, т. к. никакого другого решения не нашлось (у авторов тоже). Он слетал по WA. На 204 минуте "доказал" его правильность (на самом деле нет, просто так показалось). Затем нашли тест на котором он не работает, переделали жадник, чтобы этот тест проходил и на 256-ой минуте сдали. По этой задаче вообще судить нельзя, т. к. тесты там кривые и задача неправильная - в авторском решении найденный нами тест не работает - оно тоже неправильное.
5. На 180 минуте Гена придумал задачу F. Конечно же, решение в онлайне за O(q * log(n)^2) через персистентную СНМ. Написал за 17 минут - получил TL. Через 26 минут отправил решение в онлайне за O(q * log(n)) и тоже получил TL! Как оказалось, допустил глупую ошибку в СНМ - соединял большее с меньшим, а не наоборот. Если бы сразу это исправил, вероятно, зашло бы и решение с персистентной СНМ. На 245 мин. отправляю решение и получаю RE60. Долго (8 мин) гадаю, что не так: увеличиваю размеры массивов, убираю inline в функциях, подозреваю неправильные rollBack в СНМ (для проверки этого факта ставлю бесконечный цикл, если rollBack'аю при пустом векторе истории). Из-за чего-то решение зашло, хотя по идее ничего не должно было измениться.
6. Также Гена с Сашей придумали решение на M (ещё и примерное на J), но не успели написать, потому что оно было аналоговым - оно работало жадно, сразу на шкафах из условия, когда Миша преобразовал это в задачу на координатной плоскости и решал уже гораздо проще. Увы, если Гена что-то придумал, никто не скажет, что персистентная СНМ или решение М сложны и отправит думать дальше. Это печально, ведь он, порой, допускает такие ошибки. Как их не допускать? Отдыхать, на что времени у него нет, т. к. каждое воскресенье олимпиада, каждую субботу/вторник лекция от Т-поколения (которую он даже слушать не успевает), всю неделю олимпиада от Тинькофф, дорешивание командных (в том числе и старых), школа (хоть и немного), английский, а ещё и спонтанные олимпиады по типу Минской смены, ФПМИ в субботу или школьной олимпиады.


Случайные ошибки Саше простительны - первую половину олимпиады ему было нехорошо, однако уродливый код - это ужасно.

Выводы:
0. Даже если задача не очень приятная, но одна из первых и похожа на простую, решать её, а не искать, что бы другое почитать.
1. Саша выводил YES/NO вместо Yes/No, написал СНМ вместо dfs
2. Артём зациклился на жаднике на K. Они с Сашей отвлекали друг друга и меня разговорами, в том числе и по задачам, но в неподходящие моменты времени - например, когда Саша писал код либо его спрашивал Артём, либо он лез в разговор Артёма и Гены
3. Гена сделал баг в СНМ и написал её персистентной за log^2, вместо log в оффлайне, думал над М не в контексте формул.
Михаил Долинский

Темы: 2145
Сообщений: 51644

Мой профиль
Попробую и я системно резюмировать

1. Вести себя адекватно вовремя олимпиады

.....=== разговаривают только двое, которые не за компом,
........ причём так, чтобы не мешать тому, кто за компом
.....=== человек с компа может попросить ему помочь
.....=== сохранять порядок на столах во время олимпиады

2. Быть ВНИМАТЕЛЬНЕЕ, не допуская таких ошибок

.....YES/NO вместо Yes/No
.....забыли учесть случай, когда формула выдаёт -1 (ответ должен быть от 0). Поняли это только через 38 минут.
.... допустил глупую ошибку в СНМ - соединял большее с меньшим,а не наоборот
.... РАЗОБРАТЬСЯ с F "Из-за чего-то решение зашло, хотя по идее ничего не должно было измениться."


3. Более детально обсуждать реализацию

.... написал СНМ вместо dfs


4. Системно бороться с уродливым кодом
- обсуждать как надо и не надо, стараться писать как надо

5. Гене снизить нагрузку на себя
Артём Коцур

Темы: 0
Сообщений: 11

Мой профиль


Мастера кода онлайн:

Плохой код:
Артём:
0. Нет пробелов в выражениях и перед '{'.
1. return в конце void
2. Зануление сразу в глобальных переменных
3. ios и cin.tie не в одной строке - тяжелее комментировать

Лично я согласен с пунктами 1-3 (большинство я делаю по невнимательности или не задумываясь). Но я не согласен с пунктом 0. Пробелы в выражениях я ставлю там, где это строго необходимо..
Например:
if (mask[newmask][curnum] > mask[tmask][j] + dp[j][a[curnum]]) 

Здесь пробелы ставить обязательно, чтобы было удобно читать..
А здесь вот пробелов ставить смысла нету:
int newmask=stp2+tmask;

Порой в сложных логических выражениях я действительно забываю их поставить, но при дэбаге я их стараюсь ставить..
Так же Гена сказал, что ему не нравится как я называю переменные и что они не читабельны.. Тут, я считаю, тоже ничего менять не надо, так как лично мне не нравится называть переменные в середине с заглавными буквами(newMask,curNum).. мне и так хорошо видно, думаю Саше тоже..
Мастера кода онлайн

Темы: 0
Сообщений: 16

Мой профиль


Мастера кода онлайн:


Плохой код:
Артём:
0. Нет пробелов в выражениях и перед '{'.
 


Дополнение:
0. Скобкомания - жажда всё обернуть в скобки, например, тернарный оператор: ( (b)? (x):(y) ), вместо b, x, y выражения. Кстати, отсутствие пробелов перед ? и (перед/после) :.
Как сейчас:
( (b)? (x):(y) )

Как стоит:
b ? x : y

Или как стоит, но в скобках:
(b ? x : y)

Мастера кода онлайн

Темы: 0
Сообщений: 16

Мой профиль
Причины плохого выступления на 3 этапе ФПМИ ( по задачам МКОШП ) по версии Артёма:
1) Гена начал писать лёгкие задачи, в то время как я с Сашей пошёл искать другие изики... В итоге мы поначалу первые сдали задачу среди всех команд и достаточно быстро решили 2-ую (я помогал Гене написать, хотя спокойно мог написать её сам)...
2) После 2 сданных задач Саша пошёл писать А... сначала долго писал и дебагал, потом узнал что нужно восстанавливать ответ в очереди... В общем через час Гена придумал 2 задачи, а я к тому времени начинал думать на K, что было моей главной ошибкой за весь контест...
3) После того как Гена отсадил Сашу, он пошёл писать L, которая на самом деле тоже изик и пишется крайне легко... Эту задачу (я считаю) должен был писать я, так как идею решения Гена мне рассказал и я её одобрил...
4) Я около получаса считал, что у меня правильная идея на K и пытался помочь Саше, вместо того чтобы получше её обдумать и забраковать...
5) После того как Гена сдал L, я пошёл писать K, написав более сложное и медленное дп по битмаскам...
Потратив полчаса я понял, что проще будет написать по другому ( как Гена мне и говорил ), но на тот момент времени мне казалось это решение неправильным и я отказался его писать...
6) Гена пошёл писать G, после того как Саша сдал А... Не знаю как читали условие, но он не прочитал что там вводятся не координаты точек, а вектора... Он приносит мне решение я задаю ему логичный вопрос как вводятся входные данные и тут он хватается за голову... исправляет и сдаёт задачу... Вся печаль в том, что если бы он сразу написал как в условии, то сдал бы задачу на 4 часу, а не на 5...
7) Саша написал крайне некрасивое дп по битмаскам и долго его дэбагал... но хотя бы сдал за 4 минуты до конца, в отличие от меня, так что тут скорее вопросы к стилю написания... Ибо лично мне было крайне сложно понять код без Tabа...

Что исправить:
1) Решать (Касается всех) по тактике, а не своевольничать. Строго запрещать Гене писать изики первые 2 часа, Сашу заставлять писать красиво... мне думать над решениями больше и не распылаться пытаясь помочь и Гене, и Саше...
2) ОБДУМЫВАТЬ решения (Касается меня и Саши), пытаться забраковать идею... Прислушиваться к Гене и его советам по поводу написания...
3) Внимательнейшим образом читать условие (Касается Гены и Саши), даже если оно на 2 страницах по отдельности напечатано...
4) Читать все условия задач (сданных другими командами) хотя бы 2 людям (Касается всех), а не кому-то 1.Чтобы потом не оказалось, что задачу Е только Гена и читал (это условно, но по моей памяти так и оказалось)...
5) Пытаться упростить идею (Касается меня), и не писать без одобрения другого участника(особенно Гены)...

Мастера кода онлайн

Темы: 0
Сообщений: 16

Мой профиль
Тактика (v2):
0. Все вместе накидываемся на условия, ищем изики и сдаём их. Цель - 3 задачи за 10 минут. Пишут Артём и Саша
1. Делим задачи на 3 части, каждый читает свою
2. Сложные задачи сразу отсеиваем в отдельную стопку, поддерживаем множество самых лёгких задач, опираясь на таблицу и стараемся решать их
3. Когда кто-то что-то придумает, советуется с самым свободным, определяем лимиты по времени написания
4. Если кто-то пишет или дебагает слишком долго (больше отведённого времени на 8 минут), то кто-то либо помогает ему, либо идёт писать придуманную собой задачу
5. Над сложными задачами, которые придумывались вдвоём/втроём, после 2-3 часов контеста, писать вместе.
6. Если не понимаем, или сомневаемся в условии, думаем над ним вместе


Советы:
0. Перед написанием 10 минут думаем над реализацией, если эта задача пишется дольше 1 минуты (не слишком лёгкая)
1. Если долго не можем ничего придумать, обмениваемся задачами и идеями, обсуждаем
2. Первые 2 часа пишут только Саша и Артём
3. В последний час всем думать над 1 задачей
4. Несколько минут стараться упрощать решения перед кодированием, а также думать над реализацией всем, кто придумывал, а не только, кто кодирует
5. Кидать время нестандартных олимпиад в группу
6. Тот, кто дебагал слишком долго и не понимает, почему у него не работает, идёт распечатывать решение и пытается найти ошибку или придумать как это написать
Мастера кода онлайн

Темы: 0
Сообщений: 16

Мой профиль
Искоренение систематических ошибок

Что делаем: подсчитываем кол-во косяков каждого участника, в среду наказываем того, кто сделал больше всего ошибок.

По решению большинства можно:

0. Изменять правила штрафов после олимпиады по решению большинства
1. Прощать договорённый штраф тому, кто плохо себя чувствовал
2. На выбор виновника может влиять не только штраф, но и голосование большинства


Стоимости ошибок:
Неверная посылка (тому, кто пишет)       2 + 2 * (решение было неправильным на этапе идеи/асимптотики, а не случайного бага в реализации)

Одобрение/придумывание неправильного
решения (не тому, кто пишет)             max(1, (все повлекшие за этим ошибки))

Неверно рассказывание условия            1 + (все повлекшие за этим ошибки)

Недосказывание реализации                1

Некрасивый код                           2

Отвлекание пишущего (штраф обоим)        1

Написание задачи дольше согласованного
на 8 минут или установка слишком
большого ограничения по времени
или уход с написания задачи              2

Опоздание на олимпиаду                   3

Неявка на олимпиаду
(без онлайн помощи)                      6


26 октября (примерные оценки на глаз (Гены))
Гена: ~10
Артём: ~9
Саша: ~5
Наказание: печенье Яшкино с клубникой
Геннадий Марцинкевич

Темы: 4
Сообщений: 139

Мой профиль
ФПМИ 4
0. Начали мы нормально - сразу нашли лёгкую задачу, сдали (писал Артём, довольно быстро, но недостаточно для задачи с простым проходом по массиву - сдали через 2:42)
1. Саша с Артёмом прочитали G, придумали, Артём написал, отправил (9:45 (даже довольно быстро)), но, решение оказалось неправильным - забыли рассмотреть какие-то случаи. Посовещались и стали рассматривать их. Со следующей посылка (17:36) сдали.
2. Я тем временем читал задачи и пытался придума/отсортировать на лёгкие и тяжёлые. Шло не очень гладко. Глаза разбегались, задачи казались труднее, чем они есть на самом деле.
3. Артём прочитал J и в 31:35 отправил какую-то необдуманную дичь, даже не посоветовавшись с нами.
4. Потом прочитал L - это оказалась простая задача на реализацию, писать сел Саша. Но писал долго, а потом ещё и отлаживал, задавал глупые вопросы про взятие по модулю. Хотя бы сдали с первой посылки, но в 74:10
5. Я подключился к решению J, в котором уже было многое исправлено, но оно всё равно было переусложнённым (не знаю, принимал ли в этом участие Саша, но решение было в основном Артёма). Сказал, что это какая-то переусложнённая дичь и предложил разбор двух случаев. Сначала сел писать Саша, потом ливнул, сказав, что не понимает и хочет кушать, сел дописывать Артём (а точнее, сначала исправлять за Саней код). В 89:17 отправили - WA3. Забыли рассмотреть случай, думаю, из-за отвлечение на смену пишущего, а также мою диктовку (писать мне до 2-3 часов нельзя, а Артём не очень понимает моё решение, Саша, вроде-бы, подтвердил его правильность (да и что в нём может быть неправильного? Это лёгкий разбор случаев, который другие команды сдавали довольно быстро)). Если бы писал тот, кто придумал, было бы быстрее и качественнее (он про продумывал какие-то крайние случаи), а так, вместо этого, он диктовал код Артёму. Бред какой-то, но тактика есть тактика.
6. Артём прочитал, придумал H. Рассказал мне решение, я одобрил, он пошёл писать. Получил WA3, я подсел помочь найти баг - помог, сдали. Почему на задаче +3? Не знаю, в 134:06 и 140:34 кто-то писал какой-то странный жадник.
7. Затем я сел писать задачу E. Не рассмотрел случай с ведущими нулями, поэтому писал не очень быстро. Спустя минут 20, Саша сказал, что моё решение через построение ответа от большей цифры к меньшей трудно пишется, долго и у него есть решение проще. Я его пустил. По итогу, он точно также долго писал и уже не успел.
8. За 10 минут до конца мы решили пересесть на D, которую впервые отправили ещё в 163:49. Она летела по памяти. Мы надеялись переписать структуры на массивы и быстро её сдать, однако, не получилось - она всё также летела по памяти, вероятно, из-за векторов.

Вывод
Артём:
0. Учиться быстрее кодировать, в частности, быстрее двигать пальцами. Рекомендую изучать 10-палый ввод или его аналоги.
1. Не писать задачи, не посоветовавшись ни с кем.
Саша:
0. Писать красиво.
1. Не выгонять пишущего или сначала хотя-бы продумывать крайние случаи.
2. Писать оптимально и продумано, а не лишь бы меньше кода напечатать.
Гена:
0. Быстрее придумывать задачи, не отсеивать их сильно, т. к. обычно они лёгкие
Я ещё заметил такую тенденцию, что мы отсылаем задачу, а потом забываем о ней на 10-100 минут, если она не прошла. Нельзя её бросать - нужно наваливаться и искать баг, придумывать тесты и решать сразу же, а не переключаться (хотя, иногда, это тоже надо, например, если писавшему нужно подумать).

Штрафы (по мнению Гены)
Артём:
+4 Неправильное решение на J (без совещания)
+1 WA3 на J
+2 WA10 на G
Саша:
+4 Неправильное решение на H и неправильное рассказывание (2 отсылки)
+2 Ушёл, кодируя J
+2 WA10 на G
+3 Согнал Гену с E, а потом сам долго писал
+2 ML на D
Гена:
+1 Забыл рассмотреть случай в J (отвлёкся на уход Саши)
+2 ML на D - бор там слетает по памяти сразу, не увидел этого
Михаил Долинский

Темы: 2145
Сообщений: 51644

Мой профиль


Геннадий Марцинкевич:

ФПМИ 4
2. Я тем временем читал задачи и пытался придума/отсортировать на лёгкие и тяжёлые. Шло не очень гладко. Глаза разбегались, задачи казались труднее, чем они есть на самом деле. 
Возможно у тебя изначально неправильная установка. Разделение задач на простые/сложные ВАМ ПОКА можно делать по таблице результатов. Следите за теми задачами, которые сдаются - ими и занимайтесь в первую очередь.

3. Артём прочитал J и в 31:35 отправил какую-то необдуманную дичь, даже не посоветовавшись с нами. 
Артём - а почему ты тактику нарушаешь?
Каждая задача должна быть обдумана и обсуждена КАК МИНИМУМ ДВУМЯ участниками.

4. Потом прочитал L - это оказалась простая задача на реализацию, писать сел Саша. Но писал долго, а потом ещё и отлаживал, задавал глупые вопросы про взятие по модулю. Хотя бы сдали с первой посылки, но в 74:10  
Задавать вопросы - это лучше, чем не задавая лепить ошибки.

5. Я подключился к решению J, в котором уже было многое исправлено, но оно всё равно было переусложнённым (не знаю, принимал ли в этом участие Саша, но решение было в основном Артёма). Сказал, что это какая-то переусложнённая дичь и предложил разбор двух случаев. Сначала сел писать Саша, потом ливнул, сказав, что не понимает и хочет кушать, сел дописывать Артём (а точнее, сначала исправлять за Саней код). В 89:17 отправили - WA3. Забыли рассмотреть случай, думаю, из-за отвлечение на смену пишущего, а также мою диктовку (писать мне до 2-3 часов нельзя, а Артём не очень понимает моё решение, Саша, вроде-бы, подтвердил его правильность (да и что в нём может быть неправильного? Это лёгкий разбор случаев, который другие команды сдавали довольно быстро)). Если бы писал тот, кто придумал, было бы быстрее и качественнее (он про продумывал какие-то крайние случаи), а так, вместо этого, он диктовал код Артёму. Бред какой-то, но тактика есть тактика.
 
Это как раз повод внести ДОПОЛНЕНИЕ в тактику - если кодеры (Артём и Саша) отказываются писать, а ГЕНА абсолютно уверен в своём решении - он идёт писать сам.
Альтернатива - ОТЛОЖИТЬ эту задачу на время и заниматься другими задачами.

6. Артём прочитал, придумал H. Рассказал мне решение, я одобрил, он пошёл писать. Получил WA3, я подсел помочь найти баг - помог, сдали. 
Вот это правильная командная работа. А ошибки бывают, к сожалению.

Почему на задаче +3? Не знаю, в 134:06 и 140:34 кто-то писал какой-то странный жадник.  
Саша что-ли и тоже не советовавшись?


7. Затем я сел писать задачу E. Не рассмотрел случай с ведущими нулями, поэтому писал не очень быстро. Спустя минут 20, Саша сказал, что моё решение через построение ответа от большей цифры к меньшей трудно пишется, долго и у него есть решение проще. Я его пустил. По итогу, он точно также долго писал и уже не успел. 
Ты его пустил не обсуждая? Или ты просто не написал, что Вы обсудили его решение и ты согласился, что оно проще?

18. За 10 минут до конца мы решили пересесть на D, которую впервые отправили ещё в 163:49. Она летела по памяти. Мы надеялись переписать структуры на массивы и быстро её сдать, однако, не получилось - она всё также летела по памяти, вероятно, из-за векторов. 
А почему в тексте выше про D ничего не написано, кто придумал, с кем обсуждалось, кто писал, кто считал память?

Я ещё заметил такую тенденцию, что мы отсылаем задачу, а потом забываем о ней на 10-100 минут, если она не прошла. Нельзя её бросать - нужно наваливаться и искать баг, придумывать тесты и решать сразу же, а не переключаться (хотя, иногда, это тоже надо, например, если писавшему нужно подумать). 
Более того, надо распечатывать решение и тем, кто обсуждал эту задачу, ей заниматься - сначала только кодер ищет ошибки/опечатки в тексте, если не находит - подключается тут, кто одобрил АЛГОРИТМ и вместе перечитывают исходник и находят ошибки, вносят исправления и сдают. И. по-моему, это явно написано у вас в тактике.
Геннадий Марцинкевич

Темы: 4
Сообщений: 139

Мой профиль


Михаил Долинский:


Геннадий Марцинкевич:

ФПМИ 4
2. Я тем временем читал задачи и пытался придума/отсортировать на лёгкие и тяжёлые. Шло не очень гладко. Глаза разбегались, задачи казались труднее, чем они есть на самом деле. 
Возможно у тебя изначально неправильная установка. Разделение задач на простые/сложные ВАМ ПОКА можно делать по таблице результатов. Следите за теми задачами, которые сдаются - ими и занимайтесь в первую очередь.
 

Ну, мы так и делаем. Только есть 2 нюанса:
0. в начале Олимпиады мало что сдаётся (а если и сдаётся, то не факт, что самое лёгкое).
1. Таблица не всегда доступна, потому что кто-то кодирует и отвлекать его не стоит.


Михаил Долинский:


ДОПОЛНЕНИЕ в тактику - если кодеры (Артём и Саша) отказываются писать, а ГЕНА абсолютно уверен в своём решении - он идёт писать сам.
Альтернатива - ОТЛОЖИТЬ эту задачу на время и заниматься другими задачами.
 

Да, стоит в таких случаях писать мне. Откладывать её не следует - это лёгкая задача, которая пишется быстро и другие команды её тоже сдают. Если мы будем откладывать лёгкие задачи, то на них будет больший штраф, чем если бы мы откладывали тяжёлые.

6. Артём прочитал, придумал H. Рассказал мне решение, я одобрил, он пошёл писать. Получил WA3, я подсел помочь найти баг - помог, сдали. 
Вот это правильная командная работа. А ошибки бывают, к сожалению.


Михаил Долинский:


Ты его пустил не обсуждая? Или ты просто не написал, что Вы обсудили его решение и ты согласился, что оно проще?
 

Мы быстро обсудили. Он уверил меня в том, что это лёгкая дихотомия и там легко разобрать эти случаи (возможно, так и есть на самом деле, просто он их разбирал по ходу написания). От его на и строя мне показалось, что он уверен и прав, поэтому и пустил.


Михаил Долинский:


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

Так получилось случайно, потому что протокол на pcms очень неудобный - Я смотрел на задачи в порядке их сдачи, а не в порядке отправки решений (можно посмотреть только порядок решений по каждой задаче отдельно, а все решения вместе нельзя). Придумал я, советовался с Сашей. Я даже и не задумался, что бор может слететь по памяти (ограничение было 256, а у нас было около 300), Саша тоже этого не заметил. Как только я понял, что проблема не в его коде, сразу же придумал другое решение (кстати, без хешей, в отличие от авторского), но на тот момент уже олимпиада закончилась.
Михаил Долинский

Темы: 2145
Сообщений: 51644

Мой профиль


Геннадий Марцинкевич:


Михаил Долинский:


Геннадий Марцинкевич:

ФПМИ 4
2. Я тем временем читал задачи и пытался придума/отсортировать на лёгкие и тяжёлые. Шло не очень гладко. Глаза разбегались, задачи казались труднее, чем они есть на самом деле. 
Возможно у тебя изначально неправильная установка. Разделение задач на простые/сложные ВАМ ПОКА можно делать по таблице результатов. Следите за теми задачами, которые сдаются - ими и занимайтесь в первую очередь.
 

Ну, мы так и делаем. Только есть 2 нюанса: 



Нет никаких нюансов.

0. в начале Олимпиады мало что сдаётся (а если и сдаётся, то не факт, что самое лёгкое). 

В начале олимпиады всё очень быстро сдаётся. И именно самое лёгкое.
Можете просто в первые 15 минут ПОВЕРХНОСТНО ознакомиться со всеми задачами
(по 4-5 у каждого), может что-то и найдёт каждый полегче по его мнению.
В любом случае через 15 минут можно смело следовать за лидерами

1. Таблица не всегда доступна, потому что кто-то кодирует и отвлекать его не стоит. 

Отвлекать не стоит. Человек перед тем, как сесть писать смотрит таблицу и сообщает список сданных задач.
Это и есть ближайший фронт работ для тех, кто не за компом.
После того как человек сделал посылку - снова смотри монитор и говорит какие задачи добавились к сданным.
Такого подхода более чем остаточно.




Михаил Долинский:


ДОПОЛНЕНИЕ в тактику - если кодеры (Артём и Саша) отказываются писать, а ГЕНА абсолютно уверен в своём решении - он идёт писать сам.
Альтернатива - ОТЛОЖИТЬ эту задачу на время и заниматься другими задачами.
 

Да, стоит в таких случаях писать мне. Откладывать её не следует - это лёгкая задача, которая пишется быстро и другие команды её тоже сдают. Если мы будем откладывать лёгкие задачи, то на них будет больший штраф, чем если бы мы откладывали тяжёлые.
 
Запишите в тактику и следуйте ей.



Михаил Долинский:


Ты его пустил не обсуждая? Или ты просто не написал, что Вы обсудили его решение и ты согласился, что оно проще?
 

Мы быстро обсудили. Он уверил меня в том, что это лёгкая дихотомия и там легко разобрать эти случаи (возможно, так и есть на самом деле, просто он их разбирал по ходу написания). От его на и строя мне показалось, что он уверен и прав, поэтому и пустил. 
Обсудите - надо ли что-то в тактику добавить?
Или просто следовать ей? Идти на комп не продумав до конца в том числе и реализацию, не говоря уже о "случаях" - плохая идея.



Михаил Долинский:


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

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


Придумал я, советовался с Сашей. Я даже и не задумался, что бор может слететь по памяти (ограничение было 256, а у нас было около 300), Саша тоже этого не заметил.  
Как такое может быть? Впишите в тактику БОЛЬШИМИ КРАСНЫЫМИ буквами - считать ПАМЯТЬ наряду со сложностью.

Как только я понял, что проблема не в его коде, сразу же придумал другое решение 
Это нужно было сделать ДО КОДИРОВАНИЯ!!!


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

То что умеешь придумывать, это очень важно. Теперь надо научиться не делать ляпы - и такие в том числе.

Артём Коцур

Темы: 0
Сообщений: 11

Мой профиль
Причины плохого выступления на ФПМИ 4 ( версия Артёма ):

1. Начали мы хорошо, почти 1-ми сдали 2 изика, правда 2-ю задачу сдали со 2-й попытки из-за неразобранных 2 случаев.

2. После этих задач через 10 минут я написал J. Это была неправильная идея, Саша меня отговаривал, но я в то время был слишком уверен в себе... как итог лишняя посылка полностью по моей вине.

3. Я пошёл читать и придумывать другие задачи. Саша с Геной к тому моменту придумали L, Саша пошёл писать L, но сначала решил написать J. В момент написания понял, что не придумал ( он с Геной по этой задаче НЕ советовался и со мной тоже ) и отказался её писать... В итоге пошел писать L и сдал её через пол часа.

4. Затем я под диктовку Гены пошёл исправлять J которую написал уже Саша и через 10 минут с дополнительной неверной посылкой мы её сдали.

5. Мы С Сашей прочитали H но не поняли условие, через время Саша приходит и говорит что он его понял... Рассказывает его мне, я вместе с ним придумываю решение... пишу ( где-то 20 минут, что достаточно долго для 3 циклов ) и получаю 2 WA, спрашиваю у Саши, что не так. Оказывается, что условие он неправильно понял ( или забыл прочитать одну строчку условия, и там совершенно другое решение ). Как итог я иду думать над решением той же H, только с правильным условием, и сразу же (через 5 минут примерно) придумываю решение. Пытаюсь рассказать его Гене, он долго не понимает, но и в итоге соображает и соглашается с моим решением.

6. Саша достаточно быстро пишет D ( за минут 20, но получает сначала ML, а потом ошибку компиляции ). Я иду писать H, сдаю её через 30 минут, из-за того, что долго не мог найти глупую ошибку ( в одном массиве перепутал местами 1 и 2 параметры).

7. Саша рассказывает правильную идею на С, потом бракует её. Гена садится писать Е, но Саша отсаживает его, говоря что у него код на 5 МИНУТ и что он с лёгкостью его напишет... В итоге всех махинаций спустя 1.5 часа у нас на Е было 4 неверных посылки.

8. Уже Гена придумывает С, тоже с правильной идеей, спрашивает у меня сколько по времени, я говорю что точно нормально... Но он сомневался в моих расчётах потому отложил её на потом ( спойлер: мы так и не сели писать ни идею Саши, ни Гены... а зря ). Саша пошёл исправлять D, пытался исправить как мог, но там была изначально неправильная идея решения. В итоге он её так и не сдал.
 
Индекс форума ->Олимпиадное программирование ->Тактика на командных олимпиадах 1, 2, 3
Time:0,062