Алгоритмы - легко!
2.49K subscribers
75 photos
21 files
78 links
Канал про олимпиадную информатику. Ведет победитель всеросса по информатике Дьяконов Сергей(@sdyakonov)
Download Telegram
Forwarded from OpenOlymp
Всем привет!
Стартовал длинный тур Открытой олимпиады школьников по программированию ’24-25!

🟣Тур продлится до 15 января 2025 года. Перед стартом ознакомьтесь с правилами проведения отборочного этапа
📌Регистрация
📌Страница с условиями задач и входом в длинный тур
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥8
Мы запускаем бесплатные сборы для подготовки к региональному этапу Всероса по информатике 💫

Приглашаем учеников 8—11-х классов, и напоминаем, что за победу или призерство в финале Всероса вы можете получить право поступить в университет на бюджет без экзаменов.

Сборы будут проходить онлайн с 3 по 8 января. Также проведем очные мероприятия в Москве, Санкт-Петербурге и Казани: 6, 7 и 8 января.

Что будет:
➡️ шесть дней дистанционных туров от преподавателей Т-Поколения и команды Олпрогера — сообщества неравнодушных выпускников-олимпиадников по программированию;
➡️ лекции от преподавателей Т-Поколения;
➡️ практика, чтобы набить руку на приближенных к реальным вариантам ВсОШ;
➡️ возможность задать вопросы преподавателям;
➡️ знакомства с ребятами из других школ.

Не упустите свой шанс прокачаться в программировании, отправляйте скорее заявку: https://l.tbank.ru/sbory_inf

Канал и чат сборов в Телеграме.

🧡🦊🦍
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥9👍2
Всем удачи завтра на регионе)
Набирайте баллы в C и D и full focus.

Проверенная тактика
🔥55❤‍🔥11😨4🏆1
Наверно сегодня дали не особо хороший тур. Не расстраивайтесь, у кого 230-250 баллов. Всё-таки 500 человек выходит на всеросс. 230-250 - нормальный балл, судя по https://reg.algocode.ru

Среди нас, Марк и Матвей закрылись. Я не справился, бывает))
❤‍🔥30🔥8🤡4💔2😭1
Краткое решение задач сегодняшнего тура:
Задача A. ответ min(n - 1, m - 1) / k округленное вверх + (max(n - 1, m - 1) - min(n - 1, m - 1)) / k округленное вверх. Осознайте, почему это так(или спросите в комментах). UPD: там что-то такое. Выгодно делать +1, +1 к обоим координатам, пока можете. Поэтому min берете. А дальше делаете +1,0 или 0,+1 в зависимости от того, какое из m-1, n-1 больше

B. ans(L, R) = ans(1, R) - ans(1, L) + ans(L, L). Очевидно, что число простоватое, если в нем единички и какое-то простое число(2,3,5,7). ans(L, L) - делается в тупую. ans(1, R) и ans(1, L) - это функции вида ans(1, R). Дальше сдаете подгруппы для get(1, 10^k), чтобы для меньшого колва цифр считать. Для чисел 10^k....R, где R<10^(k+1) вы замечаете, что интересующих вас чисел немного. Они устроены так: 1...1(простое 2/3/5/7)1...1. Это уже квадрат. Но поддерживать такие числа просто, довольно стандартная техника.

C. Очевидно, что задачу можно свести к get на отрезке(делается ДОшками). Возьмем максимум на отрезке, пусть у него позиция j. Тогда слева у вас для каждого i вы берете в "глубину" префиксный максимум(L...i, i < j) вычесть a[i]. А справа аналогично, но только суффиксный вычесть a[i]. Потому что эти максимумы <= максимума на всем отрезке. Дальше это делается двумя проходами сканлайном с поддержанием стека максимумов и присваиванием на отрезке(делается ДО). Опять-таки стандартная техника.

Задача D(сомнительное решение от Матвея с каким-то пропихом на 100). давайте заведем динамику на 8 параметров, где первый - сколько мы рассмотрели столбцов, а остальные 7 - сумма на каждой диагонали сверху вниз, тогда у нас состояний будет n*8!, тогда как такое пересчитывать, переберем через next_permutation следующий столбец, но так, чтобы он подходил по сумме, в худшем случае таких перестановок будет C из 7 по 3 и тогда можно втупую пересчитать все 7 сумм, тогда итоговая асимптотика n*k!*C(k, k/2)


Обсуждение в комментариях. И поделитесь с друзьями, пожалуйста :)
🔥28👍4❤3
Всем удачи завтра на регионе)
Набирайте баллы в C и D и full focus.

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


Всё-таки 300+ людей с 226 баллами - не нормально.

Я думаю будет много подгрупп🔥
🔥59❤11❤‍🔥5👍4
Я поздравляю всех, кто:
1) смог прочитать «напишите рюкзак» в С.
2) набрал больше 0 в D.

С хорошей вероятностью вы прошли на всеросс🎉
👍46❤12😢7🐳2❤‍🔥1🔥1🥰1
Краткое решение задач сегодняшнего тура(кроме D, там на 53).

A. x^2 - y^2 = (x - y) * (x + y) = d. Перебираем делитель d до корня(он меньший, значит это x - y), тогда x + y тоже знаем. x - y = a, x + y = b -> 2 * x = a + b и также отсюда узнаем y. Проверяем их не соответствие условиям L, R.

B. Общие факты: отрезок с мин суммой всегда длины 1, потому что иначе можно "отжать" у него какой-нибудь элемент и ответ не уменьшится. Аналогично с макс суммой(то есть длины как можно больше, то есть n - k + 1, это когда все, кроме макс отрезка, длины 1).
k=2 -> перебираем префикс и находим с помощью префсумм разности.
k=3 -> отрезок с мин суммой всегда длины 1, перебираем его и с помощью преф сумм узнаем ответ.
k>3 -> с помощью "общего факта" вы перебираете, где минимум. Тогда смотрите, чтобы отрезок макс суммы был длины не больше n - k + 1 и делаете для этого преф и суф максимумы по этим отрезкам.
C. Ну блин, извините, ребят, но тут прям текстом написано: сделайте рюкзак с восстановлением ответа. Откройте алгоритмику что ли...
И написано s*(k1+...kn) <= 10^7.
Храните dp[n][s], который ссылается идем ли на предыдущий слой или остаемся при текущем w.
❤15🤡8🤬3
Forwarded from А значит Афигеть я придумал (А Значит Артемий)
Проблема: надо пораскидать 300 человек с одинаковым баллом
Решение: дать в С задачу «напишите рюкзак»
😁47🤡4😡3❤1🫡1
в D можно было на 53 рекурсию написать. Или вот такую дп: dp[слой][i][j] - где слой - красные диагонали. Пересчет простой. O(n * m * (n + m)). если >= 3 достопримечательности на одной красной диагонали, то ответ нет(fun fact)

Буду рад, если кто-то поделится решением на 100.
🔥18🤡3
😁43🤡19🤬3
editorial (3).pdf
481 KB
Полный разбор
❤11🤡5❤‍🔥3🔥2😁1
Forwarded from OpenOlymp
Всем привет!
Мы подвели итоги отборочного этапа Открытой олимпиады школьников по программированию ’24-25!

📌 На финал олимпиады приглашены все участники, набравшие хотя бы 400 баллов на длинном туре!
🟣Мы опубликовали материалы длинного тура с разбором задач, и ссылкой на дорешивание

Финал олимпиады состоится 6-8 Марта 2025 года. Уже скоро мы опубликуем регистрацию и более подробную информацию о финале
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤‍🔥5
Всем привет!
Прошел регион по математике. Как вам задачи?
🤮47❤‍🔥8😭4❤3💩2🤡1🙉1
2_5253724006443414545.pdf
386.6 KB
Разбор первого дня
🔥10👍3🥱3👏1😢1
sols2.pdf
384.3 KB
😨12🤮5❤‍🔥3👍1🥰1
Напоминание всем, всеросс по информатике через 52 дня ⭐
Please open Telegram to view this post
VIEW IN TELEGRAM
😁65🤩18❤‍🔥4❤3👍3😭2🔥1
Всем удачи сегодня на Высшей пробе! Не забывайте про подгруппы)
❤‍🔥59👍7❤3🤩2😴1
Всем привет, до всеросса остался месяц.

Канал пустеет, админы готовятся, мемы по расписанию🤝
@algo_easy
🤩31👍5😁5❤‍🔥2