Алгоритмы - легко!
1.24K subscribers
18 photos
7 files
43 links
Канал про олимпиадную информатику. Ведут призеры и победы всеросса по информатике
Download Telegram
Всем привет, опубликованы проходы в Яндекс кружок:
https://t.me/yandex_kruzhok/296

Два админа поступили в А, будет интересный контент)

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

UPD: когда нибудь потом)

Напоминаю, что мы разобрали весь отбор в Яндекс кружок, листайте наверх
🔥321
Алгоритмы - легко! pinned «Всем привет, @algo_easy возвращается :) Для Вас будут писать на постоянке: • sdyakonov(призер всеросса, 2100+ codeforces) •OG_Matveychick1(победитель всеросса, 2400+ codeforces) Также иногда будет что-то писать Ренат Каримов(победитель всеросса, 2700+ cf)…»
Всем привет)
Возвращаемся в рабочий режим))

Из объявлений:
1) наверно пойдут какие-то обучающие маленькие статьи. Но пока что админы катаются по сборам, не до этого)

2) сегодня в 9 мск заканчивается регистрация на отбор Innopolis Open. Для меня самого была неожиданность(а вот с @OlimpHelperBot не было бы хаха)
Поэтому поторопитесь, возможно продлят на один день.

Олимпиада второго уровня(раньше была первого), задачки довольно интересные и сложные :)
😁12👍3❤‍🔥22
Первый отборочный тур Innopolis Open завершился.

В комментариях можно обсудить задачи) я краткий разбор ACE туда напишу, напишите кто-нибудь, как решать B хаха

UPD: краткий разбор от Звездина Владимира уже есть :)
🔥27
Forwarded from OpenOlymp
Всем привет!
Стартовал длинный тур Открытой олимпиады школьников по программированию ’24-25!

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

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

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

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

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

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

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

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

Среди нас, Марк и Матвей закрылись. Я не справился, бывает))
❤‍🔥29🔥7🤡3💔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)


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

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


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

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

С хорошей вероятностью вы прошли на всеросс🎉
👍4511😢6🐳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.
13🤡7🤬2
Forwarded from С значит Стану фермером (А Значит Артемий)
Проблема: надо пораскидать 300 человек с одинаковым баллом
Решение: дать в С задачу «напишите рюкзак»
😁45🤡3😡21🫡1
в D можно было на 53 рекурсию написать. Или вот такую дп: dp[слой][i][j] - где слой - красные диагонали. Пересчет простой. O(n * m * (n + m)). если >= 3 достопримечательности на одной красной диагонали, то ответ нет(fun fact)

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

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

Финал олимпиады состоится 6-8 Марта 2025 года. Уже скоро мы опубликуем регистрацию и более подробную информацию о финале
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤‍🔥4
Всем привет!
Прошел регион по математике. Как вам задачи?
🤮47❤‍🔥7😭32💩2🤡1🙉1
2_5253724006443414545.pdf
386.6 KB
Разбор первого дня
🔥9👍2🥱2👏1😢1