Автор |
Сообщение |
28.08.2024 10:21:01
Тема: Re:Ошибки, которые мы совершаем
|
Геннадий Марцинкевич
Темы: 2
Сообщений: 45
Мой профиль
|
Вот что я нашёл/понял, чтобы не делать лишние отсылки:
1. Разбирать больше крайних случаев
2. Перед посылкой перечитать решение, проверить ограничения, модули и вывод -1
3. Сделать несколько своих тестов: на крайние случаи и на переполнение чисел (когда где-то вместо int'ов надо было поставить long'и в итоге числа переполняются).
|
01.09.2024 20:24:40
Тема: Re:Ошибки, которые мы совершаем
|
Геннадий Марцинкевич
Темы: 2
Сообщений: 45
Мой профиль
|
2009 +13
A: +2 Не разобрал некоторые случаи. Пришлось долго придумывать тесты, чтобы их отловить.
B: +3 Когда я читал эту задачу, немного не так понял условие. Потом пришёл Виталик, прочитал и рассказал мне правильное условие. Эта задача перешла ему. По началу Виталик разбирал слишком много случаев, и ошибся в одном из них. Потом я подключился, и заметил, что это решение не будет проходить по времени из-за того, что он заходит в уже посещённые вершины дерева несколько раз. Решение небольшое, и переписывать было мало, так что легче мне было переписать эту задачу. Я написал правильное решение, которое проверяет, что в тек. вершину мы ещё не заходили, но я забыл обновлять, что мы зашли в эту вершину. Результат - TL.
C: +1 Тут всё банально. Памяти было мало, и лонги её сжирали. Убрал лонги - получил OK.
D: +1 Забыл файлы
J: +6 1. Забыл файлы
2. Была ошибка в коде, но проблема была ещё и в переполнении лонгов.
3. Переписал на python. Ещё забыл файлы уже в python'е
4. Долго не мог понять в чём же ошибка. По итогу оказалось, что я продолжал (continue) из цикла, если степень первых лонгов меньше l.
5. Не до конца исправил старую ошибку
6. Теперь я продолжал цикл, если u * v < l, хотя я мог их домножить на взаимно простое с ними число
Что же делать: Пока точно не знаю, как не допускать такие ошибки. Они возникают неожиданно, каждый раз в новом месте. Даже самостоятельно проверяя свой код, у меня не получается их находить, потому что они являются частью моей реализации специально (т. е. я их продумываю, думая, что это правильно) (ну, кроме файлов. К ним я скоро привыкну). Может стоит давать Виталику читать мой код и задавать все вопросы подряд, чтобы избегать таких ошибок в самой идее реализации? Или придумывать не 5, а 20 своих тестов?
|
01.09.2024 23:36:00
Тема: Re:Ошибки, которые мы совершаем
|
Михаил Долинский
Темы: 2010
Сообщений: 47873
Мой профиль
|
Для начала нужно НАВСЕГДА избавиться от ЗАБЫЛ ФАЙЛЫ.
Это несложно.
А ещё надо соблюдать свои же правила
Геннадий Марцинкевич:
1. Разбирать больше крайних случаев
2. Перед посылкой перечитать решение, проверить ограничения, модули и вывод -1
3. Сделать несколько своих тестов: на крайние случаи и на переполнение чисел (когда где-то вместо int'ов надо было поставить long'и в итоге числа переполняются).
Сколько из них ты сегодня нарушил?
Надо ли добавить НОВОЕ ПРАВИЛО?
(с учётом того, что олимпиада КОМАНДНАЯ)
|
11.09.2024 10:38:26
Тема: Re:Ошибки, которые мы совершаем
|
Михаил Брель
Темы: 6
Сообщений: 41
Мой профиль
|
IOI 2024
В целом первый день прошел неплохо. У меня не было никаких серьезных тактических ошибок и на все задачи я потратил достаточное количество времени. Конечно, можно было набрать больше баллов по B и C (особенно B). По ней я даже придумал решение на +10 баллов под конец контеста. Однако вся задача это чистейший конструктив, и я считаю, что придумывание таких задач это практически случайность. Это доказывает то, что на контесте только 1 человек решил B полностью, и примерно у 10 других была полная идея (87+ баллов), хотя итоговое решение максимально простое. По C сказать нечего. Я просто не смог ничего придумать за оставшееся время.
Во второй день не было такой простой задачи, как A первого дня, так что первый час прошел практически впустую, так как я пытался сразу придумать какую-то задачу на 100.
Я считаю, что основная моя ошибка в этом день заключалась в том, что я потратил очень мало времени, думая над B (самая простая задача 2 дня). Произошло это в основном из-за того, что за 20 минут, которые я над ней думал, я придумал неправильную идею и достаточно долго её писал (примерно час). Когда я понял, что идея неправильная, я решил, что потратил над задачей уже много времени и перешел к другой, хотя на самом деле я думал над ней 20 минут и все что я сделал за это время - придумал неправильную идею.
Также по C второго дня я много думал над более общим решением, а не решением на подгруппы по отдельности. Из-за этого не добрал 10 баллов по одной из подгрупп.
В целом я считаю, что большая часть моих проблем была из-за того, что у меня было слишком много вариантов что делать, и я не знал, в каком из них проще всего набираются баллы. Это было очень заметно в этом контесте. Первый день решать было гораздо проще психологически из-за того, что одну задачу сразу решил. Я считаю, что единственное что можно сделать, чтобы наверняка решить этот вопрос, это стать настолько сильным, чтобы решать часть задач сразу.
Также сказывалось волнение и пребывание в непривычных условиях. На протяжении всего контеста у меня были проблемы с концентрацией, то есть я мог просто отвести взгляд в сторону и прекратить о чем-либо думать на несколько минут.
|
11.09.2024 12:57:36
Тема: Re:Ошибки, которые мы совершаем
|
Михаил Долинский
Темы: 2010
Сообщений: 47873
Мой профиль
|
Обнаруженные проблемы
- разбегаются глаза (3 задачи, думать полное или решать группы)
- «я пытался сразу придумать какую-то задачу на 100»
- выписать тактику в форуме, например
... прочитать задачу
... понять, что нужно сделать
... проанализировать группы, понять качества группы «упрощающие задачу»
... если какие-то группы придумались - зафиксировать на бумаге
... сделать это для всех трёх задач?
... составить план «сбора лёгких баллов» (<=1 час 30 минут)
... собрать лёгкие баллы (<=2 часа 30 минут)
... увеличить время на обдумывание полных решений/дополнительных групп по задачам (по 30 на каждую)
....... если придумалось писать
....... иначе перейти к другой задаче
- модифицировать тактику по возникновению новых соображений
- научиться отсекать неверные идеи на этапе обдумывания
- стать сильнее
|
18.09.2024 13:41:42
Тема: Re:Ошибки, которые мы совершаем
|
Михаил Брель
Темы: 6
Сообщений: 41
Мой профиль
|
NEERC 2023
J +1. Случайно отправил не тот код.
M +2. В первой посылке забыл разобрать случай. Перед второй почему-то поспешил и не проверил решение
на одном из сэмплов, из-за чего не заметил глупую ошибку в коде.
Возможно я просто отвык работать в команде, из-за чего был невнимательным, особенно в начале контеста.
|
13.10.2024 07:38:33
Тема: Re:Ошибки, которые мы совершаем
|
Геннадий Марцинкевич
Темы: 2
Сообщений: 45
Мой профиль
|
Вчера мы с командой решали Питерскую интернет олимпиаду.
Могли лучше. Вот основные проблемы:
1. На задачу D Саша и Виталик не рассказали мне своё решение и стали писать хеши, хотя задача решается не ими. Итог - много потраченного времени и -23 отсылки.
2. Прочитали не все задачи. Кирилл сказал, что К была лёгкой, но никто из нас её не прочитал по двум причинам: 1. Её почти никто не звал. 2. Были другие задачи.
Вывод: надо чтобы кто-то, я или Саша читали ВСЕ задачи, хоть их сдало 0 команд.
3. Саша придумал G, но мы её не писали, т. к. никто на тот момент её не сдал. Я понимаю, что Саша и не должен был её придумывать, но он её придумал. И ладно мы были бы какими-то лохами, которые ничего решить не могут, но мы первые сдали С, а под конец олимпиады и G, но мы тогда уже были не первыми, и потеряли кучу штрафа, а если бы мы доверились Саше, который заметил в этой задаче потенциал, мы бы её сдали. Ведь хотя бы по этой же причине, мы не сдали K, хотя могли.
4. Всё таки у нас много неверных посылок. Пусть пишет и Виталик, но он не бог, и надо стремиться делать меньше отправок. Ключевая проблема лишних посылок - невнимательность.
Вроде бы и всё, что я хотел сказать. Если мы это всё исправим, то мы будем пусть и не первыми, но очень к этому близки.
|
|
|