• Olprog
  • Главная
  • Задачи
  • Решения
  • Пользователи
  • Контесты
  • Мой прогресс
    >
    • Status
Войти  или  Зарегистрироваться

  • Блог
  • События

Новости

Тренировка по графам

montes332 опубликовано на 8 Апрель 2026, 7:05 п.п. 0

На эту неделю у нас практика к двум базовым теориям по графам:

  • 11.1 Терминология графов — https://olprog.ru/articles/olprog/graphs/basics/terminology/
  • 11.2 Представление графов — https://olprog.ru/articles/olprog/graphs/basics/representation/

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

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

Практика к теме:

  • Космическая станция — https://judje.olprog.ru/problem/spacehub
  • Судья часового квартала — https://judje.olprog.ru/problem/watchdistrictjudge
  • Школа магии — https://judje.olprog.ru/problem/magicportals
  • Центральный фонарь — https://judje.olprog.ru/problem/lanternhub
  • Древние руины — https://judje.olprog.ru/problem/ancientruinsexchange
  • Часовщики в мастерской — https://judje.olprog.ru/problem/watchmakersrow
  • Сеть музеев и хранилищ артефактов — https://judje.olprog.ru/problem/museumnetwork
  • Бездна и кольцевой риф — https://judje.olprog.ru/problem/abysscycle
  • Лесная сеть сигналов — https://judje.olprog.ru/problem/forestsignal
  • Кольцевые маршруты — https://judje.olprog.ru/problem/cycleroutes

Эта подборка подойдёт тем, кто хочет:

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

Во время решения особенно полезно задавать себе такие вопросы:

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

Рекомендуем идти так: сначала прочитать обе теории, затем решать задачи по порядку — от самых интуитивных к тем, где граф уже чуть менее очевиден. На этом этапе особенно важно научиться правильно переводить текст условия в графовую модель. Очень часто главная сложность задачи не в коде, а в том, чтобы вообще понять, что перед вами граф.

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

Удачи в решении!

Ждём ваши результаты, вопросы и впечатления от задач.

Workout bits

montes332 опубликовано на 3 Апрель 2026, 6:46 д.п. 0

На эту неделю у нас сложная тренировка по битам.

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

В тренировку вошли задачи:

  • Lantern Code — https://judje.olprog.ru/problem/lanterncode
  • Морские скважины — https://judje.olprog.ru/problem/offshorewells
  • Хранители кристаллов — https://judje.olprog.ru/problem/crystalpairing
  • Космические телескопы и карта сигналов — https://judje.olprog.ru/problem/orbitalsignalmap
  • Очистка океана — https://judje.olprog.ru/problem/oceancleansignal
  • Сигнал дальнего сканера — https://judje.olprog.ru/problem/scannerxor
  • Энергоячейки склада — https://judje.olprog.ru/problem/warehousepowercells
  • Сборка диагностической сети — https://judje.olprog.ru/problem/servicebaynetwork
  • Лунные раскопки — https://judje.olprog.ru/problem/lunardigxorlength
  • Межзвёздная экспедиция — https://judje.olprog.ru/problem/starvoyageleader

Эта тренировка подойдёт тем, кто хочет:

  • закрепить сложные идеи на битах;
  • научиться видеть, где задача естественно сводится к xor, and, маскам или двоичному разбору числа;
  • потренировать конструкции, жадные наблюдения, математику и нетривиальную реализацию;
  • перейти от базовых битовых упражнений к задачам уже соревновательного уровня.

Во время решения полезно обращать внимание на несколько вещей:

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

Рекомендуем решать эту подборку именно как тренировку: не спешить сразу смотреть редакционные идеи, а сначала пытаться руками разбирать маленькие примеры, выписывать двоичную запись и искать закономерности. В битовых задачах это особенно полезно: очень часто решение появляется не после долгого кода, а после одного удачного наблюдения.

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

Удачи в решении!

Ждём ваши результаты, вопросы и впечатления от задач.

Битовые операции

montes332 опубликовано на 31 Март 2026, 8:07 д.п. 0

На эту неделю у нас практика к теории «Побитовые операции».

Это следующий важный шаг после знакомства с двоичной записью чисел. Если в теме про представление чисел в битах мы учимся понимать, как число устроено, то здесь уже начинаем активно работать с отдельными битами: проверять их, менять, сравнивать числа по битовым свойствам и использовать побитовые операции как полноценный инструмент решения задач.

Теория:

  • 10.2 Побитовые операции — https://olprog.ru/articles/olprog/bit-manipulation/operations/

Практика к теме:

  • Таинственный жетон — https://judje.olprog.ru/problem/lonelytoken
  • Переключатели на панели — https://judje.olprog.ru/problem/panelbitflips
  • Неоновые панели — https://judje.olprog.ru/problem/neonpanels
  • Ночной сигнал — https://judje.olprog.ru/problem/nightsignal
  • Удерживая баланс — https://judje.olprog.ru/problem/bitwisebalance

Эта подборка подойдёт тем, кто хочет не просто запомнить, как работают AND, OR, XOR и сдвиги, а научиться узнавать ситуации, где такие операции действительно упрощают решение.

Во время решения особенно полезно обращать внимание на такие вопросы:

  • какой именно бит или группа битов влияет на ответ;
  • что удобнее сделать: проверить бит, включить его, выключить или инвертировать;
  • можно ли заменить более громоздкую логику короткой побитовой операцией;
  • есть ли в задаче инвариант, чётность или свойство, которое естественно выражается через XOR.

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

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

Удачи в решении!

Ждём ваши результаты, вопросы и впечатления от задач.

Представления битов

montes332 опубликовано на 31 Март 2026, 8:06 д.п. 0

На эту неделю у нас практика к теории «Представление чисел в битах».

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

Теория:

  • 10.1 Представление чисел в битах — https://olprog.ru/articles/olprog/bit-manipulation/representation/

Практика к теме:

  • Сигнальные фонари — https://judje.olprog.ru/problem/signallanterns
  • Светящиеся панели — https://judje.olprog.ru/problem/glowingpanels
  • Зеркальный сигнал — https://judje.olprog.ru/problem/mirrorbits
  • Лампы на башне — https://judje.olprog.ru/problem/towerlamps
  • Сортировка по числу сигналов — https://judje.olprog.ru/problem/bitbadgesort

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

  • как получить двоичную запись числа;
  • как определить значение конкретного бита;
  • как посчитать количество единичных битов;
  • как сравнивать числа по их битовому представлению;
  • как аккуратно применять побитовые идеи в реализации.

Рекомендуем идти так: сначала прочитать теорию, затем решить задачи по порядку — от самых прямых и интуитивных к тем, где битовое представление уже становится частью более общей идеи. Такой путь помогает не просто выучить отдельные операции, а увидеть, как из простой двоичной записи вырастают полноценные алгоритмические приёмы.

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

Удачи в решении!

Ждём ваши результаты, вопросы и впечатления от задач.

Динамика и Лис

montes332 опубликовано на 25 Март 2026, 2:50 п.п. 0

Лисы тут не причем!

На эту неделю у нас практика к теории «Наибольшая возрастающая подпоследовательность».

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

Теория:

  • Наибольшая возрастающая подпоследовательность — https://olprog.ru/articles/olprog/dp/lis/

Практика к теме:

  • Тропа разведчика — https://judje.olprog.ru/problem/scouttrail
  • Башни сигнала — https://judje.olprog.ru/problem/signaltowers
  • Хранители музейных маршрутов — https://judje.olprog.ru/problem/museumroutes
  • Контейнеры для музея — https://judje.olprog.ru/problem/nestedpackages
  • Коллекция для витрины — https://judje.olprog.ru/problem/collectorsshowcase

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

Во время решения полезно обращать внимание на несколько вещей:

  • что именно нужно искать: непрерывный участок, подпоследовательность или более общую структуру;
  • какое состояние удобно хранить в динамике;
  • когда достаточно решения за O(n^2), а когда уже стоит думать про ускорение;
  • как меняется задача, если нужно найти не только длину, но и восстановить ответ или обработать более сложные ограничения.

Рекомендую идти так: сначала внимательно прочитать теорию, затем попробовать самостоятельно определить, какие из задач решаются через базовую динамику, а где уже проявляются идеи, близкие к классической LIS. Даже если решение не находится сразу, полезно хотя бы выписать, что будет означать dp[i] и откуда может получаться переход.

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

Удачи в решении!

Жду ваши результаты, вопросы и впечатления от задач.

Динамика и монеты

montes332 опубликовано на 25 Март 2026, 2:48 п.п. 0

На эту неделю у нас практика к теории «Задача о монетах».

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

Теория:

  • Задача о монетах — https://olprog.ru/articles/olprog/dp/coin-problem/

Практика к теме:

  • Монеты для экспедиции — https://judje.olprog.ru/problem/expeditioncoins
  • Чайная лавка мастера — https://judje.olprog.ru/problem/teablends
  • Каменные плиты — https://judje.olprog.ru/problem/stoneplates
  • Городские пропуска — https://judje.olprog.ru/problem/seasonpasses
  • Склад жетонов — https://judje.olprog.ru/problem/warehousetokens

Эта подборка подойдёт тем, кто хочет не просто прочитать теорию, а сразу закрепить её на задачах. Во всех этих задачах полезно обращать внимание на одно и то же:

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

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

Если в какой-то задаче не получается сразу увидеть решение — это нормально. На таких задачах как раз и формируется навык: выделять состояние, замечать повторяющиеся подзадачи и превращать рекурсивную идею в табличную динамику.

Удачи в решении!

Жду ваши результаты, вопросы и впечатления от задач.

Дорешка олимпиады Олмат

опубликовано на 23 Март 2026, 3:07 п.п. 0

Мы опубликовали дорешку олимпиады, которую проводили ранее. Теперь можно спокойно пройтись по задачам ещё раз, дорешать то, что не получилось во время тура, и разобрать идеи уже без спешки. В каждой задаче вы сможете публично открытый разбор.

Задачи разделены на два уровня.

Уровень «Новички»

  • Фильтрация аномалий датчиков — https://judje.olprog.ru/problem/filtero1
  • Контроль возврата автономного робота — https://judje.olprog.ru/problem/roboto2
  • Проверка корректности пакета спутниковых данных — https://judje.olprog.ru/problem/sputniko3
  • Баланс нагрузки в микроэнергосети — https://judje.olprog.ru/problem/energyo4
  • Поиск самого длинного стабильного фрагмента — https://judje.olprog.ru/problem/dnao5

Сложный уровень

  • Оптимизация активации нейронного блока — https://judje.olprog.ru/problem/neuroo6
  • Навигация беспилотника в городской сетке — https://judje.olprog.ru/problem/rovero7
  • Восстановление связности спутниковой группировки — https://judje.olprog.ru/problem/spaceo8
  • Минимизация пиковой нагрузки энергосети — https://judje.olprog.ru/problem/energyo9
  • Сравнение геномов (редакционное расстояние) — https://judje.olprog.ru/problem/dnao10

Это хороший момент, чтобы:

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

Даже если во время олимпиады не всё получилось, дорешка — это как раз тот этап, где часто происходит самый полезный рост. Именно здесь лучше всего видны собственные слабые места: где не хватило аккуратности, где — техники, а где — уверенности в выборе метода.

Удачи в дорешивании!

Ждём ваши вопросы по тем задачам, которые показались самыми интересными или самыми сложными.

Недельный усложнённый тур Март-26-3

montes332 опубликовано на 19 Март 2026, 7:38 д.п. 0

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

В контест вошли задачи:

  • График полезных дней — https://judje.olprog.ru/problem/campusroutine
  • Кристаллические наборы — https://judje.olprog.ru/problem/crystalbundles
  • Ярмарочные стойки — https://judje.olprog.ru/problem/festivalbooths
  • Совместимость наставников — https://judje.olprog.ru/problem/mentorcompatibility
  • Фестиваль премьер — https://judje.olprog.ru/problem/festivalscreening
  • Городской индекс устойчивости — https://judje.olprog.ru/problem/citymedianupgrade
  • Выравнивание зарядов — https://judje.olprog.ru/problem/zerochargealignment
  • Витрина прототипов — https://judje.olprog.ru/problem/prototypeshowcase
  • Кратные последовательности — https://judje.olprog.ru/problem/divisiblesequences
  • Цепочка волшебных ингредиентов — https://judje.olprog.ru/problem/magicingredientchain

Этот контест подойдёт тем, кто хочет:

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

Рекомендуем решать в формате полноценного контеста: выделить себе 2–3 часа, не смотреть разборы во время решения, стараться выбирать задачи по ощущениям от условий и фиксировать те места, где возникли трудности. После этого особенно полезно дорешать оставшиеся задачи и разобрать, где именно не хватило идеи, аккуратности или техники.

Удачи в решении!

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

Недельный простой тур Март-26-3

montes332 опубликовано на 18 Март 2026, 8:19 д.п. 0

На эту неделю подготовил простой тренировочный контест — хороший набор задач, чтобы спокойно закрепить базовые темы, потренировать внимательность и набить руку на аккуратной реализации.

В контест вошли задачи:

  • Фонарики для тропы — https://judje.olprog.ru/problem/traillanterns
  • Сигнальная вывеска — https://judje.olprog.ru/problem/signalbanner
  • Обратный отсчёт терминала — https://judje.olprog.ru/problem/terminalcountdown
  • Значок удачи — https://judje.olprog.ru/problem/luckybadge
  • Дуэль табло — https://judje.olprog.ru/problem/scoreboardduel
  • Тайное послание — https://judje.olprog.ru/problem/mirrormessage
  • Коридор проверки — https://judje.olprog.ru/problem/corridorcheck
  • Год без повторов — https://judje.olprog.ru/problem/distinctdigitsyear
  • Переполненный шаттл — https://judje.olprog.ru/problem/shuttlecapacity
  • Сигнал от тестовой группы — https://judje.olprog.ru/problem/verdictsignal

Рекомендуем решать в формате мини-контеста: засечь себе 1–2 часа, не смотреть разборы и попытаться набрать максимум задач самостоятельно. После этого полезно дорешать оставшиеся задачи и разобрать все места, где возникли ошибки. К задачам закреплены разборы. Удачи в решении!

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

Первый практикум по теме «Генерация подмножеств» опубликован

montes332 опубликовано на 15 Март 2026, 10:52 д.п. 0

С радостью публикуем первый практикум по теме «Генерация подмножеств» на платформе.

Это одна из самых важных базовых тем в полном переборе. Именно с неё обычно начинается уверенное понимание того, как:

  • перебирать все возможные наборы элементов;
  • строить решения через рекурсию;
  • использовать битовые маски для представления подмножеств;
  • переходить от простой генерации вариантов к полноценным олимпиадным задачам.

Перед практикой рекомендуем сначала изучить теорию:

Теория: https://olprog.ru/articles/olprog/complete-search/subsets/

В практикум вошла последовательность задач, расположенных в порядке — от более простых идей к более содержательным и комбинированным:

  1. Пустынный караван https://judje.olprog.ru/problem/desert
  2. Коллекция магических артефактов https://judje.olprog.ru/problem/artifacts
  3. Коллекции артефактов https://judje.olprog.ru/problem/relicsets
  4. Сбор Букетов https://judje.olprog.ru/problem/bouquetpick
  5. Репетиция фестиваля https://judje.olprog.ru/problem/festivalrehearsal
  6. Команды для экспедиции https://judje.olprog.ru/problem/expeditionteams
  7. Хранители равновесия https://judje.olprog.ru/problem/keepersofbalance

Если вы только начинаете разбираться с полным перебором, совет простой:

  • сначала прочитайте теорию;
  • затем решайте задачи строго по порядку;
  • после каждой задачи пробуйте сформулировать, какой именно способ перебора там использовался — рекурсивный или через маску.

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

Удачи в решении!

  • «
  • 1
  • 2
  • »

Поток комментариев

  • montes332 → Редакция для Сеть музеев и хранилищ артефактов
  • montes332 → Энергоячейки склада
  • montes332 → Хранители кристаллов
  • Лейхнер_Константин → Редакция для Сеть музеев и хранилищ артефактов
  • Kazakov_Dmitrii → Энергоячейки склада
  • Kazakov_Dmitrii → Хранители кристаллов
  • Лейхнер_Константин → Выравнивание зарядов
  • montes332 → Выравнивание зарядов
  • Лейхнер_Константин → Выравнивание зарядов
  • Лейхнер_Константин → Коллекция для витрины
RSS / Atom

Новые проблемы

  • Кольцевые маршруты
  • Лесная сеть сигналов
  • Бездна и кольцевой риф
  • Сеть музеев и хранилищ артефактов
  • Часовщики в мастерской
  • Древние руины
  • Центральный фонарь
RSS / Atom

работает на базе DMOJ |