[Logo] Форум DL
  [DL]  На главную страницу 
Индекс форума ->Олимпиадное программирование ->Методика подготовки к IOI 2007 - ...
Автор Сообщение
Геннадий Марцинкевич

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

Мой профиль
Тема для фиксации случайных ошибок, чтобы не делать их в будущем или делать, но быстро находить.
Геннадий Марцинкевич

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

Мой профиль
Ошибки чтения условий

0. Прочитал "или" вместо "и"
1. Забыл, что пропустил кусок условия из-за не понимания оного и не перечитал потом
2. Прочитал "подпоследовательности" вместо "подмассивов"
3. Не понял сразу, что граф не связанный (2)


Ошибки реализации

Без алгоритмов:
0. Вместо "Farmer John\n" выводил "John"
1. Считал сумму геометрической прогрессии до K, а не до N
2. Неправильно разобрал базовый случай
3. Не обнулял сумму при выполнении условия

Дихотомия:
0. В дихотомии проверял не md, а l.

Теория чисел:
0. Забыл проверять случай при факторизации числа, что после проверки простыми <= sqrt(n), осталось какое-то число, являющееся простым > sqrt.

Модульная арифметика:
0. Не брал по модулю число, передавая его в функцию возведения в степень (power(1e18, 1e18, mod) -> power(1e18 % mod, 1e18, mod))
1. Не брал по модулю при вычитании, не брал по модулю внутри функции sum(n) = n * (n + 1) / 2, для n <= 10^18 (задал x = n, y = n + 1, разделил одного из них на 2, забыл взять обоих по модулю)

Очередь:
0. Проходил сквозь стены в очереди

Графы:
0. Когда хотел сделать макс= на вертикальном пути в дереве в офлайне добавлял в верхней вершине пути и удалял в нижней, тем самым добавляя на всех остальных детях верхней вершины
1. Неправильно написал Эйлеров цикл: в dfs проходил только по 1 ребру, а не по всем, пока они не закончатся

Set/Map:
0. Неправильный компаратор set'a - проверял не все необходимые члены.
1. При телепортировании границы не обновлял структуру, в отличие от перемещения указателя на 1 позицию вперёд.
2. Не рассмотрел случай, что элемента может не быть в мапе, из-за этого он увеличивал свой размер (мне повезло, что дефолтное 0 у новых элементов мне и было нужно), что ломало следующую часть кода

СНМ:
0. Подсоединял большее к меньшему, а не наоборот

Сложное DP:
0. Ломал проверку dp[i] на бесконечность, обновляя его отрицательными рёбрами: dp[u.f] = min(dp[u.f], dp[p.s] + u.s); (u.s < 0, изначально все dp[i] = oo)
1. Тупо обрабатывал старт в dp[msk][lst], беря за стартовый dp[0][0], при этом не обрабатывая этот случай в цикле отдельно
2. В dp расстояний начальное значение задавал не 0, а награде, которую получу, придя в стартовую вершину - награда в dp вообще не используется


Ошибки отладки

0. Не придумал тест на лёгкий случай
 
Индекс форума ->Олимпиадное программирование ->Методика подготовки к IOI 2007 - ...
Time:0,04