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

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

Новости

Двухточечные перспективы

montes332 опубликовано на 19 Май 2026, 6:31 д.п. 0

На эту неделю подготовили тренировочный контест по продвинутым префиксам и методу двух указателей.

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

Префиксные суммы, XOR, разности и двумерные префиксы

  • Сумма квадратов на отрезке — https://judje.olprog.ru/problem/sumofsquaresrange
  • XOR на отрезке — https://judje.olprog.ru/problem/prefixxorrange
  • Знакочередующаяся сумма на отрезке — https://judje.olprog.ru/problem/alternatingsignsum
  • Сумма элементов, кратных D, на отрезке — https://judje.olprog.ru/problem/summultiplesofdrange
  • Диапазонные прибавления и сумма на отрезке — https://judje.olprog.ru/problem/rangeaddrangesum
  • Сумма произведений двух массивов на отрезке — https://judje.olprog.ru/problem/pointwiseproductsum
  • Подсчёт особых клеток в прямоугольнике — https://judje.olprog.ru/problem/binarymatrixrectcoun
  • Горячие окна K x K в тепловой карте — https://judje.olprog.ru/problem/kxkwindowsthresholdc

Два указателя и скользящее окно

  • Самый длинный участок с суммой не более S — https://judje.olprog.ru/problem/longestsubarraysumle
  • Количество пар с суммой K в отсортированном массиве — https://judje.olprog.ru/problem/pairssumksorted
  • Слияние двух отсортированных списков — https://judje.olprog.ru/problem/mergetwosorted
  • Подотрезок с суммой ровно S — https://judje.olprog.ru/problem/subarraysumexacts
  • Кратчайший подотрезок с суммой не меньше S — https://judje.olprog.ru/problem/shortestsubarraysumg
  • Количество подотрезков с произведением меньше K — https://judje.olprog.ru/problem/countsubarraysproduc
  • Количество пар в двух отсортированных массивах с суммой K — https://judje.olprog.ru/problem/pairstwosortedsumk
  • Самый длинный подотрезок с не более чем K различными значениями — https://judje.olprog.ru/problem/longestsubarrayatmos

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

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

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

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

В задачах на два указателя стоит обращать внимание на другое:

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

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

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

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

Разминка после майских

опубликовано на 11 Май 2026, 5:02 п.п. 0

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

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

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

Диофантовы уравнения и теория чисел

  • Линейное уравнение — https://judje.olprog.ru/problem/linearequation
  • Проверка делимости — https://judje.olprog.ru/problem/divisibilitychecks
  • Наибольший общий делитель — https://judje.olprog.ru/problem/gcdpair
  • НОД массива — https://judje.olprog.ru/problem/gcdarray
  • Расширенный алгоритм Евклида — https://judje.olprog.ru/problem/extendedeuclid
  • Линейное сравнение — https://judje.olprog.ru/problem/linearcongruence
  • Минимальное неотрицательное решение — https://judje.olprog.ru/problem/minimalnonnegsolutio
  • Обобщённая китайская теорема об остатках — https://judje.olprog.ru/problem/crtgeneral

Префиксные суммы

  • Сумма массива — https://judje.olprog.ru/problem/arraysum
  • Сумма префикса фиксированной длины — https://judje.olprog.ru/problem/prefixsumk
  • Сумма на отрезке — https://judje.olprog.ru/problem/rangesumqueries
  • Сумма чётных и нечётных позиций — https://judje.olprog.ru/problem/oddevenprefix
  • Количество подотрезков с заданной суммой — https://judje.olprog.ru/problem/subarrayswithsums
  • Сумма на прямоугольнике в матрице — https://judje.olprog.ru/problem/matrixrectsum
  • Максимальная сумма подотрезка длины k — https://judje.olprog.ru/problem/maxwindowsumk
  • Покраска прямоугольников в матрице — https://judje.olprog.ru/problem/rectupdatespointquer

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

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

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

  • где появляется равенство вида a * x + b * y = c;
  • нужно ли здесь найти НОД;
  • делится ли правая часть на НОД коэффициентов;
  • требуется ли одно решение или все решения в некотором диапазоне;
  • нужно ли аккуратно работать с остатками по модулю.

А в задачах на префиксные суммы стоит отдельно отслеживать:

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

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

Остатки задач перед летом

montes332 опубликовано на 2 Май 2026, 9:37 п.п. 0

На эту неделю подготовили тренировочный контест по базовой теории чисел.

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

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

  • Загоны для скота — https://judje.olprog.ru/problem/livestockpens
  • Общий ритм барабанов — https://judje.olprog.ru/problem/drumrhythm
  • Когда автобусы встретятся — https://judje.olprog.ru/problem/busmeeting
  • Сокращённый рецепт — https://judje.olprog.ru/problem/simplifiedrecipe
  • Совместимые шестерёнки — https://judje.olprog.ru/problem/compatiblegears
  • Платёж двумя жетонами — https://judje.olprog.ru/problem/twotokenpayment
  • Лампы вдоль провода — https://judje.olprog.ru/problem/lampsonwire
  • Балансировка магических кристаллов — https://judje.olprog.ru/problem/crystalbalance
  • Точная дозировка зелья — https://judje.olprog.ru/problem/exactdose
  • Подбор обратного ключа — https://judje.olprog.ru/problem/inversekey
  • Шифр-замок — https://judje.olprog.ru/problem/cipherlock
  • Невозможные суммы монет — https://judje.olprog.ru/problem/impossiblecoinsums
  • Закупка двух типов товаров — https://judje.olprog.ru/problem/twogoodspurchase
  • Совмещение календарей — https://judje.olprog.ru/problem/calendarmerge
  • Точки на координатной сетке — https://judje.olprog.ru/problem/latticepairs
  • Согласование расписаний — https://judje.olprog.ru/problem/schedulealignment

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

  • уверенно закрепить НОД и алгоритм Евклида;
  • научиться видеть задачи на НОК и совместные периоды;
  • потренировать взаимную простоту и сокращение отношений;
  • разобраться с простыми диофантовыми уравнениями;
  • начать увереннее работать с обратными элементами и остатками.

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

  • где в задаче появляется делимость;
  • нужен ли здесь НОД или НОК;
  • можно ли свести условие к линейному диофантову уравнению;
  • требуется ли проверка существования решения;
  • не возникает ли переполнение при умножении больших чисел;
  • какие ограничения подсказывают нужную сложность.

Рекомендуем решать подборку в формате мини-контеста: выделить себе 2–3 часа, сначала пройти задачи на прямое применение НОД и НОК, а затем перейти к более содержательным задачам на уравнения, остатки и обратные элементы. После контеста полезно отдельно выписать для каждой задачи, какая математическая идея была ключевой.

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

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

Успеем дойти ?

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

На эту неделю подготовили простой тренировочный контест по алгоритму Дейкстры.

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

Теория:

  • 13.2 Алгоритм Дейкстры — https://olprog.ru/articles/olprog/graphs/shortest-paths/dijkstra/

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

  • Кратчайший путь в городе — https://judje.olprog.ru/problem/cityshortestpath
  • Расстояния от штаба — https://judje.olprog.ru/problem/distancesfromhq
  • Успеть на поезд — https://judje.olprog.ru/problem/catchthetrain
  • Маршрут экспедиции — https://judje.olprog.ru/problem/expeditionroute
  • Робот на складе — https://judje.olprog.ru/problem/warehouserobot
  • Самый безопасный путь — https://judje.olprog.ru/problem/safestpath
  • Ближайший склад — https://judje.olprog.ru/problem/nearestwarehouse
  • Остановка в столице — https://judje.olprog.ru/problem/capitalstopover
  • Пешком или автобусом — https://judje.olprog.ru/problem/walkorbus
  • Купоны на скидку — https://judje.olprog.ru/problem/discountcoupons
  • Надёжный маршрут — https://judje.olprog.ru/problem/reliableroute
  • Цифровые превращения — https://judje.olprog.ru/problem/digittransforms
  • Путь с пересадками — https://judje.olprog.ru/problem/pathwithtransfers
  • Режимы движения — https://judje.olprog.ru/problem/travelmodes
  • Путь с заправками — https://judje.olprog.ru/problem/refuelpath
  • Расписание паромов — https://judje.olprog.ru/problem/ferryschedule

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

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

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

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

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

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

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

Обход разрешён!

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

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

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

  • Сигнал в лаборатории — https://judje.olprog.ru/problem/labsignal
  • Разрозненные острова — https://judje.olprog.ru/problem/scatteredislands
  • Короткая дорога курьера — https://judje.olprog.ru/problem/couriershortroad
  • Коридоры тренировочного полигона — https://judje.olprog.ru/problem/trainingcorridors
  • Самый большой сад — https://judje.olprog.ru/problem/largestgarden
  • Уровни старого дерева — https://judje.olprog.ru/problem/oldtreelevels
  • Две смены на станции — https://judje.olprog.ru/problem/twostationshifts
  • Петля в квартале — https://judje.olprog.ru/problem/districtloop
  • Порядок сборки механизма — https://judje.olprog.ru/problem/mechanismorder
  • Ближайший маяк — https://judje.olprog.ru/problem/nearestbeacon
  • Маршруты одинаковой длины — https://judje.olprog.ru/problem/equallengthroutes
  • Платные и бесплатные тоннели — https://judje.olprog.ru/problem/freepaidtunnels
  • Побег от огня — https://judje.olprog.ru/problem/escapefromfire
  • Хрупкие мосты — https://judje.olprog.ru/problem/fragilebridges
  • Радиосети экспедиции — https://judje.olprog.ru/problem/expeditionradionetwo
  • Ключи в цифровом лабиринте — https://judje.olprog.ru/problem/digitalmazekeys

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

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

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

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

Ты не ОБОЙДЕШЬ!

montes332 опубликовано на 16 Апрель 2026, 10:04 д.п. 0

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

  • 12.1 Поиск в глубину (Depth-First Search) — https://olprog.ru/articles/olprog/graphs/traversal/dfs/
  • 12.2 Поиск в ширину (Breadth-First Search) — https://olprog.ru/articles/olprog/graphs/traversal/bfs/
  • 12.3 Применения обхода графа — https://olprog.ru/articles/olprog/graphs/traversal/components/

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

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

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

  • Ключи старой башни — https://judje.olprog.ru/problem/oldtowerkeys
  • Острова пепельного моря — https://judje.olprog.ru/problem/ashenislands
  • Мозаика светящихся плит — https://judje.olprog.ru/problem/glowingmosaic
  • Тревога в железной крепости — https://judje.olprog.ru/problem/ironalarm
  • Побег из подземных тоннелей — https://judje.olprog.ru/problem/tunnelescape
  • Ледяная дорога каравана — https://judje.olprog.ru/problem/icecaravan
  • Огонь в квартале мастеров — https://judje.olprog.ru/problem/craftfire
  • Провинции северной империи — https://judje.olprog.ru/problem/northprovinces
  • Кварталы медного города — https://judje.olprog.ru/problem/copperdistricts
  • Лес древних духов — https://judje.olprog.ru/problem/spiritforest
  • Кольца большого мегаполиса — https://judje.olprog.ru/problem/cityrings
  • Путь королевского гонца — https://judje.olprog.ru/problem/royalroute

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

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

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

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

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

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

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

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

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

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

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

  • 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

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

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

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

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

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

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

  • «
  • 1
  • 2
  • »

Текущие соревнования

Олмат - итоги 26-baz1
Заканчивается на 6 дней 02:21:34.

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

  • montes332 → Распределение рейсов по автобусам
  • альберт → Закупка двух типов товаров
  • montes332 → Цифровые превращения
  • Ya_Moshenkov_Yaroslav → Маршрут экспедиции
  • Ya_Moshenkov_Yaroslav → Маршрут экспедиции
  • Kazakov_Dmitrii → Цифровые превращения
  • montes332 → Лес древних духов
  • Наталья → Лес древних духов
  • Ya_Moshenkov_Yaroslav → Тревога в железной крепости
  • montes332 → Тренировка по графам
RSS / Atom

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

  • Рюкзак туриста
  • Платформы железнодорожной станции
  • Точка равновесия коромысла
  • Сколько задач решить за ночь
  • Сколько дней ждать роста цены
  • Робот в лабиринте
  • Возрастающая коллекция монет
RSS / Atom

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