Warning: Undefined array key 0 in /var/www/tgoop/function.php on line 65

Warning: Trying to access array offset on value of type null in /var/www/tgoop/function.php on line 65
107 - Telegram Web
Telegram Web
Всем привет!
Сегодня я хотел бы поделиться с вами полезным советом.
За свою олимпиадную карьеру я познакомился с многими призерами и победителями ВСОШ, Открытой олимпиады школьников по программированию и другими сильными олимпиадниками. И самое важное, что я отметил у большинства из них — это сильная математическая база. Конечно же, эти ребята обладают невероятным преимуществом. Но этим преимуществом можно завладеть. И это совершенно не связано с какой-либо одаренностью. Связь между сильной математической базой и успехом в олимпиадах по информатике — прямая. Я рекомендую вам, если вы школьник, или вашему ребенку, если вы родитель, поступать в математические школы.

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

Если же такой возможности нет, то рекомендую найти курсы по олимпиадной математике в вашем городе или онлайн. Это тоже развивает математические навыки.

Всем удачи💙

Ссылка на рейтинг школ: https://sochisirius.ru/uploads/2022/12/rating2022.pdf
👍27
‼️ Сейчас идет регистрация на отбор в два самых лучших кружка по олимпиадному программированию в России.

• Кружок от Яндекс: https://algocode.ru/form/registration2023/

• Кружок от Тинькофф:
https://l.tinkoff.ru/algo_nabor2023
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25👎2
Олимпиадный сезон уже совсем скоро!

Сегодняшний пост — рекомендация по подготовке к олимпиадам от двухкратного призера ВСОШ. Человека, который вел сборы Республики Татарстан к заключительному этапу прошедшего года.

Автор: Карим Миннибаев

Ссылка: https://telegra.ph/Kak-botat-olimpiadnoe-programmirovanie-08-07
👍29
Ищем ребят, которым интересно делиться своими знаниями с другими!

Если вы хотите публиковать свои посты в “Сборнике Олпрогера”, то пишите сюда: @khadzakos

В сообщении вы должны указать ваш класс, уровень(в параллелях), аккаунт на codeforces.com, а также информацию, которую вы посчитаете нужной(достижения, школы, сборы и т.д.)!

Мы открыты для сотрудничества и предложений! Ждем вас в рядах наших редакторов❤️
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Определены критерии прохода на курс по олимпиадному программированию Яндекса.

〰️ Параллель С
Очное обучение ≥11 задач
Online обучение ≥7 задач

〰️ Параллель B’
Очное обучение ≥10 задач
Online обучение ≥7 задач

〰️ Параллель B
Очное обучение ≥10 задач
Online обучение ≥7 задач

〰️ Параллель A’
Очное обучение ≥10 задач
Online обучение ≥8 задач

〰️ Параллель A
Граница прохода ≥9 задач
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18
Всем привет!
Поздравляю всех, кто смог отобраться в ту параллель Яндекс Кружка, в которую хотел🥳
Поскольку официального разбора задачек пока ещё нет, а кому-то может быть интересно узнать идею какой-либо задачи, я подготовил неофициальный разбор всех задачек из A'-A и A (с подсказками!).
Разбора задачек из других параллелей, к сожалению, нет (поскольку я не решал их), но вы можете поделиться своими идеями по ним в комментариях :)

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

Ссылка: https://github.com/tiom4eg/YandexQuals/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍36
Можно обсуждать задачи под этим постом. Если интересно как решить что-то ниже А'-А, пишите, посмотрим.
Привет, Сборник!
Присоединяюсь к поздравлениям тех, кто прошел в Яндекс Кружок🎉
А тем, кто еще ждет результаты в Тинькофф Поколение, желаю еще чуть-чуть терпения

tiom4eg сразу начал с жестких задач. Я решил, наоборот, пойти с параллели C и помочь начинающим.
Ловите видеоразбор параллелей C кодом на C++ и Python:

Яндекс Кружок:
▶️ Видеоразбор с кодом ▶️
💻 Код задач на C++ и Python 💻

Тинькофф Поколение:
▶️ Видеоразбор с кодом ▶️
💻 Код задач на C++ и Python 💻

Автор: https://www.tgoop.com/KogutIvanTutoring
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15
Правила участия МКОШП 2023.pdf
55.3 KB
Информация про МКОШП 2023.
Предварительные правила участия прикладываем файлом.

Даты проведения соревнований:
1️⃣ Квалификация — 8 октября 2023 года. Скоро откроется регистрация площадок
2️⃣ МКОШП — 22 октября 2023 года
3️⃣ ВКОШП — 11-12 декабря 2023 года
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Привет, Сборник!
Учеба в Яндекс кружке уже началась! Но дорешать задачи из отбора никогда не поздно!

Ловите видеоразбор параллели B` с кодом на C++:


▶️ Видеоразбор с кодом ▶️
💻 Код задач на C++ 💻

Автор: https://www.tgoop.com/KogutIvanTutoring
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
🔔Началась Регистрация на Отборочный Этап,
который стартует

📆 1 ноября

✔️Ознакомьтесь с документами Олимпиады
✔️Зайдите в Личный кабинет
✔️Пройдите регистрацию, затем перейдите по ссылке из письма, которое пришло на почту.
✔️Заполните анкету участника. Важно: после сохранения введенных данных их корректировка станет недоступной.
✔️Пройдите регистрацию на интересующий вас предмет Олимпиады — кликните в меню слева «Подать новое заявление», выберите предмет и нажмите «Подать заявление».
✔️Перейдите по ссылке — внизу страницы указано время, через которое система предоставит вам доступ в информационную систему с заданиями.
✔️Введите данные вашей учетной записи в открывшейся странице. 
✔️Внимательно ознакомьтесь с аннотацией к заданиям. Вы можете приступить к выполнению работы. Выполнять задания можно в любое время в течение срока проведения отборочного этапа.
✔️Если вы хотите участвовать в другом предмете, зайдите в Личный кабинет и повторите действия, начиная с п. 4

https://olymp.spbu.ru/
👍7
‼️ Открылась регистрация команд на МКОШП-2023.

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

Финальный тур будет проходить 22 октября 2023 года на базе Высшей Школы Экономики.

Обратите внимение:

1. Школы, в которых в прошлом году было не менее 15 участников отборочного этапа или финала МКОШП и не менее трех участников финала, могут выступать только командами своих школ. (По результатам участия в МКОШП-2022 под это правило попадают школы 179, СУНЦ МГУ, Школа ЦПМ, Л2Ш, 57, 2007, 1580, Летово, Физтех-лицей).

2. Если от школы г. Москвы, не попадающей под правила п. 1), в отборочном или заключительном этапе МКОШП-2023 будут принимать участие как минимум два участника финала МКОШП-2022, эти участники могут принимать участие только в составе команд своей школы. Остальные участники из этих школ могут входить и в сборные команды.

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

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

Ссылка: https://mkoshp.ru/
👍9👎3
Dijkstra_Animation.gif
8.8 KB
Алгоритм Дейкстры

Пререквизиты:
🔙
Хранение графов в компьютере, поиск в ширину (BFS), куча (priority_queue в C++) или std::set В C++

Теория:
📚 Алгоритмика - идея, доказательства, реализация на C++
📚 Фоксфорд - идея, реализация на C++ и Python
📼 Павел Маврин - идея, доказательства, псевдореализация

Первые задачи:
💻 ACMP - блок задач, рекомендую решать в таком порядке ABDCEGFH
💻 Leetcode - 1 задачка

Контест по теме с периодически пополняемыми задачами:
🔄 Контест - сейчас там уже 10 задач и они будут еще пополняться. Для решения нужно вступить в группу на кф - ссылка

Вопросы на понимание темы:
Нужна ли на практике реализация Дейкстры за O(n^2), если есть за O(m * logn)
Нужна, если в задаче граф почти полный, то есть количество ребер в нем примерно O(n^2). Другая реализация в таком графе будет работать за O(n^2 * logn)

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

Давайте из каждой вершины восстановим кратчайший путь до стартовой и оставим в графе только ребра из восстановленых путей. Что за граф мы получим?
Получится ориентированный граф без циклов. Его обычно называют DAG. Частенько оно используется в задачах

Делитесь с друзьями, задачи будут интересны любому уровню!

💬 Следующие темы смело предлагайте в комментариях

Автор: https://www.tgoop.com/KogutIvanTutoring
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27👎3
Хеширование строк. Полиномиальный хеш.

Пререквизиты:
🔙
Сумма, вычитание, произведение, деление по модулю
🔙 Бинарное возведение в степень

Теория:
📚 Algocode wiki - описание, реализация на C++, пример задач с решением (идейным)
📚 Статья на Codeforces - подробное описание, примеры использования, трюки и лайфхаки
📼 Павел Маврин - описание, реализация на псевдокоде

Первые задачи:
💻 ACMP 1
💻 TIMUS 1
💻 ACMP 2
💻 ACMP 3

KIT контест по теме с периодически пополняемыми задачами:
🔄 Контест - сейчас там уже 5 задач. Для решения нужно вступить в группу на кф - ссылка

Вопросы на понимание темы:
Почему число p рекомендуется брать строго больше, чем максимальной код символа из задачи?
Если это не так, то при хеше, когда степени p возрастают, появится много очевидных коллизий, когда у вас первые буквы у двух строк разные, но по модулю они равны

Что можно сделать, чтобы уменьшить вероятность коллизии и не получить WA в задаче?
Хороший способ - считать два хеша: один по модулю m1, а второй по модулю m2. Считать строчками равными, если совпадают оба хеша

Допустим в задаче требуется часто умножать на разные степени числа p и мы их каждый раз вычисляем бинарным возведением в степень. Как можно ускорить программу?
Чаще всего в задачах степени будут не больше длины строки (n). Поэтому давайте предпосчитаем все степени числа p за O(n) - один for без использования бинарного возведения в степень. Дальше достаем нужную степень из предпосчитанных значений

Делитесь с друзьями, задачи будут интересны любому уровню!

💬 Следующие темы смело предлагайте в комментариях

Автор: https://www.tgoop.com/KogutIvanTutoring
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16👎6
Удачи всем завтра на финале МКОШПа!
Завтра выложим ссылку на результаты в реальном времени.
👍33👎2
👍8
Муниципальный этап в Москве по информатике пройдет:
10 декабря в 10:00.
Математика:
28 ноября в 16:00 для 7-8 классов
29 ноября в 16:00 для 9 классов
30 ноября в 16:00 для 10-11 классов.
👍3
Как проходит школьный этап по информатике, расскажите в комментариях. Снова проблемы с ним?
👍3👎1
Хеши

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

1) Не используйте long long в хешах и тем более не ставьте #define int long long, это увеличит время работы программы в несколько раз.

2) Этот совет вытекает из первого пункта: напишите модулярную арифметику. Я видел очень много людей, которые просто обмазываются взятием по модулю в коде, и из-за этого увеличивают и время работы программы (которое при хешировании очень важно), и шанс потерять в каком-то месте взятие по модулю, что приведет к WA.
Обычно я пишу простые методы add(a, b), sub(a, b) и mul(a, b), которые улучшают читаемость кода и не используют лишний раз взятие по модулю, заменяя его на один if

3) Используйте не два модуля, а два основания. От этого хеширование не сломается, принципиально это ничего не меняет. Единственное - становится намного проще написать двойные хеши

4) При написании двойных хешей - перегрузите операторы +, - и * для pair<int, int>. Это позволит вам сэкономить много нервов и сил при дебаге и написании читабельного кода, например, для тиммейта на командной олимпиаде

5) Предпосчитайте степени и обратные степени ваших оснований по модулю, чтобы каждый раз не вызывать бинарное возведение в степень для поиска обратного в кольце по модулю

6) Не используйте модуль 2^64, он очень легко ломается специальными строками. Я обычно использую модуль 10^9 + 7 и основания k1 = 29, k2 = 31. В 90% задачах на хеши это работает (только если специально не сгенерированы тесты не эти модули)

7) Если двойные хеши не проходят по TL, а одинарные валятся на антихеш-тестах, то попробуйте написать одинарные хеши по модулю mod = 1200720071 и основанию k = 179 (оказывается, mod * 2 влезает в int, а mod * mod - в long long). Это может сработать, хотя на практике обычно если у вас TL на правильно написанных двойных хешах, то нужно придумывать более оптимальное решение.

8) Если есть возможность, не храните хеши в map или в unordered_map. В большинстве случаев можно заранее подобавлять хеши в вектор, посортировать его и выполнять в нём бинпоиск, который работает за более быстрый логарифм, чем взятие в map. ( см. пример в моём коде на количество различных подстрок в строке).

9) Обратные хеши обычно помогают в задачах на палиндромы.

10) Если вам не нужны обратные хеши, то в прямых хешах можно не домножать pref[left] на deg[right - left + 1], такая хеш-функция тоже будет корректной.

11) Используйте лямбда-функции, которые находят хеш подстроки [left...right]. Это сильно удобнее (особенно при дебаге кода глазами), чем каждый раз писать формулу.

12) Если вы сдаёте задачу на контесте со взломами (например, на Codeforces round), то обязательно возьмите 6 различных простых модулей, и выбирайте среди них случайный в самом начале программы. Это нужно, чтобы ваше решение не смогли легко взломать, придумав контртест к фиксированному модулю.

13) Если хотите проникнуться хешами, можете прочитать статью в блоге Сергея Копелиовича на codeforces: https://codeforces.com/blog/entry/17507 (и комментарии тоже)

Обещанная ссылка на код: https://pastebin.com/RhR1WS0c

Если у вас есть ещё советы и фишки, которыми вы хотите поделиться - обязательно пишите о них в комментариях!
👍25
2025/07/13 03:48:45
Back to Top
HTML Embed Code: