Буду рассказывать про популярные , которые могут сильно замедлить развитие.
Чем быстрее ты перестанешь так делать, тем быстрее возьмёшь диплом
Одна из вреднейших привычек как при подготовке, так и при написании туров - зацикливаться на одной задаче
Концентрировать свои силы на одном задании можно до 10 минут. Если за это время ты не решил - то дальше сидеть бессмысленно.
Можно пойти подумать над другой задачей, погулять, как-то сменить деятельность и вернуться попозже, но зацикливаться нельзя, это только потратит силы.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍2🔥1
Про эйлеровы графы
Первая часть - ссылка
Как же Эйлер понял, что обойти все мосты Кенигсберга нельзя❓
Для этого он сформулировал следующую теорему:
Чтобы обойти граф, в каждую вершину нужно сначала войти, потом выйти, то есть задействуются два ребра. Исключение могут составлять только две вершины - начальная и конечная.
Проверить граф на наличие эйлерового пути несложно, интереснее такой путь построить. Оказывается, для этого есть алгоритм, работающий за линейное время
Будем рекурсивно обходить граф, удаляя пройденные ребра. Когда рассмотрим все ребра, исходящие из вершины - добавляем её в путь.
Реализация
Чтобы удалять ребра, можно хранить их в структуре, поддерживающей удаление (set, unordered set), либо хранить массив с информацией о состоянии каждого ребра.
Пишите вопросы в комментариях⬇️
Первая часть - ссылка
Как же Эйлер понял, что обойти все мосты Кенигсберга нельзя
Для этого он сформулировал следующую теорему:
Давайте назовем путь, проходящий через все ребра графа по одному разу эйлеровым. В таком случае, граф имеет эйлеров путь тогда и только тогда, когда в нем не более двух вершин с нечетной степеньюИнтуиция следующая:
Чтобы обойти граф, в каждую вершину нужно сначала войти, потом выйти, то есть задействуются два ребра. Исключение могут составлять только две вершины - начальная и конечная.
Проверить граф на наличие эйлерового пути несложно, интереснее такой путь построить. Оказывается, для этого есть алгоритм, работающий за линейное время
Будем рекурсивно обходить граф, удаляя пройденные ребра. Когда рассмотрим все ребра, исходящие из вершины - добавляем её в путь.
Реализация
void euler(int v) {
while (!g[v].empty()) {
u = *g[v].begin(); // берем ребро
remove_edge(v, u); // удаляем его
euler(u); // запускаемся от новой вершины
}
cout << v << " "; // выписываем текущую вершину
}Чтобы удалять ребра, можно хранить их в структуре, поддерживающей удаление (set, unordered set), либо хранить массив с информацией о состоянии каждого ребра.
Пишите вопросы в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤4🔥3
Динамическое программирование на задачах⚙️
Этот метод проще всего понять, рассматривая реальные задания
Предыдущий пост по теме - ссылка
❗️ Задача: K-ичные числа
Сначала подумайте сами, если хотите проверить решение - вот ссылка на задачу
💡 Решение
Пишите в комментариях, по каким еще темам подобрать задачи⬇️
Этот метод проще всего понять, рассматривая реальные задания
Предыдущий пост по теме - ссылка
Рассмотрим N-значные числа в системе счисления с основанием K. Будем считать число правильным, если его K-ичная запись не содержит двух подряд идущих нулей. Например:
- 1010230 — правильное 7-значное число;
- 1000198 не является правильным числом;
- 0001235 — не 7-значное, а 4-значное число.
Даны числа N и K, вычислите количество правильных K-ичных чисел, состоящих из N цифр.
Сначала подумайте сами, если хотите проверить решение - вот ссылка на задачу
Применим метод динамического программирования. Мы можем добавить к правильному числу еще одну цифру, чтобы получить новое правильное число. Если число не кончается на ноль, то мы можем добавить любую цифру. Если нет, то любую, кроме нуля
За dp[i][1] примем количество правильных чисел длиной i, не заканчивающихся на ноль
За dp[i][0] примем количество правильных чисел длиной i, заканчивающихся на ноль
Формулы перехода будут следующие:
dp[i][0] = dp[i - 1][1]
dp[i][1] = (dp[i - 1][0] + dp[i - 1][1]) * (k - 1)Ответом на задачу будет dp[n][1], так как число не должно заканчиваться на ноль
Пишите в комментариях, по каким еще темам подобрать задачи
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍4🔥2
Алгоритм Евклида: как быстро найти наибольший общий делитель двух чисел?
Если числа большие, то перебирать делители придется долго. На помощь приходит следующее свойство💡
Повторяем, пока одно из чисел не станет равно 0. Второе и есть ответ.
Пример работы:
Работает за O(log(min(a, b))), что гораздо быстрее чем просто перебирать делители.
Если числа большие, то перебирать делители придется долго. На помощь приходит следующее свойство
НОД(a, b) = НОД(b, a mod b)
Повторяем, пока одно из чисел не станет равно 0. Второе и есть ответ.
Пример работы:
НОД(252, 105):
252 mod 105 = 42 → НОД(105, 42)
105 mod 42 = 21 → НОД(42, 21)
42 mod 21 = 0 → НОД = 21✔️ .
Работает за O(log(min(a, b))), что гораздо быстрее чем просто перебирать делители.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8🔥2👍1
Несложная олимпиада II уровня, хорошо котируется, рекомендуется к написанию
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Что делать, если не получается❓
Не все выходит с первой попытки. Многие думают, что если с самого начала не получается, то у них нет потенциала и продолжать бессмысленно. Но это не так.
Олимпиады не проверяют ваш талант. Они проверяют ваше упорство
Именно упорство отделяет тех, у кто победил, от тех, у кто проиграл.
Будьте упорными и не думайте о поражениях. Тогда успех обязательно придет🥇
Не все выходит с первой попытки. Многие думают, что если с самого начала не получается, то у них нет потенциала и продолжать бессмысленно. Но это не так.
Олимпиады не проверяют ваш талант. Они проверяют ваше упорство
Именно упорство отделяет тех, у кто победил, от тех, у кто проиграл.
Будьте упорными и не думайте о поражениях. Тогда успех обязательно придет
Please open Telegram to view this post
VIEW IN TELEGRAM
❤17👍1
Задания финального этапа-14.pdf
172.9 KB
Задачи с реальной олимпиады🥇
Это последняя задача с финала олимпиады "Когнитивные технологии" 24 года.
Сначала подумайте сами⚠️
Решение:
Всего задач на финале было 11, чтобы стать призером решить было достаточно только 5.
Все еще считаешь, что поступить по олимпиадам невозможно?
Это последняя задача с финала олимпиады "Когнитивные технологии" 24 года.
Сначала подумайте сами
Решение:
Задачу можно решить методом двух указателей. Так как взято было ровно k последовательных клавиш, можно пройтись циклом по строке и проверить все варианты подстрок длины k, поддерживая координаты точки, в которую гуманоид попадет после их нажатия. Чтобы проверить следующую подстроку, достаточно добавить следующий символ и убрать последний. Сложность алгоритма - O(n)
Всего задач на финале было 11, чтобы стать призером решить было достаточно только 5.
Все еще считаешь, что поступить по олимпиадам невозможно?
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10
Обязательна для написания школьникам без БВИ, поступающим по информатике
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7🔥1
Как я взял свой первый перечень?
Рассказываю про начало олимпиадного пути
💡 Мораль истории такова:
Первое. Начинать ботать самостоятельно очень сложно, не бойтесь просить помощи у более опытных, сэкономите много нервов и времени
Второе. Не бойтесь поражений. Сегодня выпал плохой тур, завтра выпадет хороший. Если записаться на все олимпиады и усердно ботать - все получится.
С момента, когда я начал ботать, до первого диплома прошло 4 месяца.
Надеюсь, эта история кого-нибудь вдохновит на собственные олимпиадные успехи🥇
Рассказываю про начало олимпиадного пути
Ноябрь 9 класса. К олимпиадам по информатике тогда даже не прикасался, кое-как программировал на питоне. Передо мной встаёт вопрос о поступлении. Пытался ботать самостоятельно, не получалось ничего
На помощь пришел мой друг, коллега и тогдашний одноклассник - Дима Знышев. Он занимался олимпиадами и рассказал мне всю базу, после чего я начал самостоятельно. Занимался по 10 часов в неделю, решал тимус, писал раунды на Codeforces.
Все шло хорошо, до первой реальной олимпиады - это был регион. Я написал гораздо ниже своих способностей, еле как набрав на призера. Было обидно, но сдаваться было нельзя.
Я продолжил ботать, и уже через месяц после провала случилась первая победа - Технокубок. Был хороший для меня вариант, и я взял призера, окупив все старания
Первое. Начинать ботать самостоятельно очень сложно, не бойтесь просить помощи у более опытных, сэкономите много нервов и времени
Второе. Не бойтесь поражений. Сегодня выпал плохой тур, завтра выпадет хороший. Если записаться на все олимпиады и усердно ботать - все получится.
С момента, когда я начал ботать, до первого диплома прошло 4 месяца.
Надеюсь, эта история кого-нибудь вдохновит на собственные олимпиадные успехи
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍3🔥3
Наибольшая возрастающая подпоследовательность
⚙️ Продолжаем разбирать популярные задачи на динамическое программирование
Задача:
Решается за O(n²) методом динамического программирования
Решение:
Кстати говоря, данное решение далеко не оптимальное. Задачу можно решить за O(n • log(n)), зная определенные структуры данных.
Если есть вопросы, то пишите в комментарии⬇️
Задача:
Дан массив целых чисел. Необходимо найти длину наибольшей возрастающей подпоследовательности.
Решается за O(n²) методом динамического программирования
Решение:
Пусть dp[i] - длина НВП, оканчивающейся на элементе с индексом i. Будет заполнять массив dp слева направо.
Заполнение массива будет следующим: если dp[i] = 1, то искомая последовательность состоит только из числа a[i]. Если d[i] > 1, то перед числом a[i] в подпоследовательности стоит какое-то другое число. Переберём его: это может быть любой элемент a[j], такой что j < i, а также a[j] < a[i].
В таком случае,
dp[i] = 1 + max(dp[j]), при условии, что j < i, dp[j] < dp[i]
Ответом на задачу будет максимальное значение массива dp.
Кстати говоря, данное решение далеко не оптимальное. Задачу можно решить за O(n • log(n)), зная определенные структуры данных.
Если есть вопросы, то пишите в комментарии
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍1
Немного про формат ЕГЭ
Последняя задача на экзамене по информатике - олимпиадная. По меркам олимпиадных задач она не сложная, но если олимпиадами вы не занимались, то может доставить проблем
Очень часто попадаются задачи на метод двух указателей и задачи на делимость, так что знание базовых алгоритмов лишним не будет.
Последняя задача на экзамене по информатике - олимпиадная. По меркам олимпиадных задач она не сложная, но если олимпиадами вы не занимались, то может доставить проблем
Очень часто попадаются задачи на метод двух указателей и задачи на делимость, так что знание базовых алгоритмов лишним не будет.
👍8❤1🤯1
Советы начинающим💡
Ищи олимпиадное окружение. Чем больше опытных олимпиадников в твоем круге общения, тем быстрее ты развиваешься.
Найди олимпиадные кружки в городе, участвуй в интенсивах, старайся влиться в олимпиадные сообщества - это очень помогает, особенно когда занимаешься самостоятельно.
Ищи олимпиадное окружение. Чем больше опытных олимпиадников в твоем круге общения, тем быстрее ты развиваешься.
Найди олимпиадные кружки в городе, участвуй в интенсивах, старайся влиться в олимпиадные сообщества - это очень помогает, особенно когда занимаешься самостоятельно.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12
Что делать, если я не умею программировать❓
Если вы не хотите учиться программированию, но хотите поступить без ЕГЭ, то есть немало перечневых олимпиад по теоретической информатике
Вот список лучших:
Готовиться к олимпиадам из этого списка - тоже самое, что готовиться к ЕГЭ, а заключительные этапы будут хорошей тренировкой перед экзаменом✔️
Если вы не хотите учиться программированию, но хотите поступить без ЕГЭ, то есть немало перечневых олимпиад по теоретической информатике
Вот список лучших:
- Бельчонок - 2 уровень
- Гранит науки - 2 уровень
- Изумруд - 3 уровень
- Олимпиада ИТМО - 1 уровень
Готовиться к олимпиадам из этого списка - тоже самое, что готовиться к ЕГЭ, а заключительные этапы будут хорошей тренировкой перед экзаменом
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍4
Хочу в онлайн формате разобрать тур какой-нибудь олимпиады.
Что вам было бы интереснее?
Что вам было бы интереснее?
Anonymous Poll
35%
Заключительные этапы
28%
Отборочные этапы
18%
Муниципальный этап ВСОШ
19%
Региональный этап ВСОШ
❤2
Очень вредная привычка, которая держит тебя на месте - заучивать алгоритмы.
Алгоритмы это важно, но без умения придумывать идеи они бесполезны. Достаточно изучить базовые методы, а упор делать именно на решение разных задач.
Побеждает не тот, кто знает больше алгоритмов, а тот, кто решил больше задач
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9🔥3👍2
Открытый вебинар с разбором олимпиады🌐
Разберём первый отборочный этап олимпиады "Технокубок" прошлого года.
Вебинар состоится в пятницу, 10 октября в 18:00 по московскому времени
Рассчитан для начинающих, так что походу разбора рассмотрим все необходимые алгоритмы⚙️
Всех жду!
Разберём первый отборочный этап олимпиады "Технокубок" прошлого года.
Вебинар состоится в пятницу, 10 октября в 18:00 по московскому времени
Рассчитан для начинающих, так что походу разбора рассмотрим все необходимые алгоритмы⚙️
Всех жду!
✍11❤6🔥2💘1
Зачем учить алгоритмы❓
Неочевидной пользой олимпиад является тот факт, что в вузе на IT-направления вам все равно придется изучать алгоритмы и структуры данных, несмотря на то что большинство из них вам не пригодятся. Многие алгоритмы в реальных задачах просто неприменимы, зато постоянно встречаются на олимпиадах.
Так что лучше начинать ботать уже сейчас, так и поступить проще, и в вузе учиться легче🥇
Неочевидной пользой олимпиад является тот факт, что в вузе на IT-направления вам все равно придется изучать алгоритмы и структуры данных, несмотря на то что большинство из них вам не пригодятся. Многие алгоритмы в реальных задачах просто неприменимы, зато постоянно встречаются на олимпиадах.
Так что лучше начинать ботать уже сейчас, так и поступить проще, и в вузе учиться легче
Please open Telegram to view this post
VIEW IN TELEGRAM
✍1
Набираю учеников‼️
Подготовка к олимпиадам по информатике в мини-группах
Формат занятий:
Уровень знаний:
Упор идет на практику и решение сложных задач. Плюсом к этому объясню все про олимпиады по информатике, расскажу, какие перечни писать, чтобы поступить, а также составлю программу занятий.
Стоимость: 1600 руб. за занятие
Отзывы (страница на Авито)
❗️ Предлагаю бесплатное пробное занятие
Задать вопрос или записаться - @nvrmanager
⚠️ Количество мест ограничено, возьму не более 2 групп
Подготовка к олимпиадам по информатике в мини-группах
Формат занятий:
- В группах по 5 человек
- Раз в неделю
- Длительность - 1-1.5 часа
- Чередуем лекции и разборы задач
Уровень знаний:
- Готовлю к олимпиадам по информатике с нуля
- Единственное требование - базовое знание любого языка программирования
Упор идет на практику и решение сложных задач. Плюсом к этому объясню все про олимпиады по информатике, расскажу, какие перечни писать, чтобы поступить, а также составлю программу занятий.
Стоимость: 1600 руб. за занятие
Отзывы (страница на Авито)
Задать вопрос или записаться - @nvrmanager
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍4😁3❤🔥1👎1🥰1
В преддверии сегодняшнего вебинара, публикую условия отборочного этапа Технокубка, который сегодня будет разобран
Начнем сегодня в 18:00 по московскому.
Всех жду!
Начнем сегодня в 18:00 по московскому.
Всех жду!
❤6🔥4
Вебинар окончен, спасибо всем, кто присутствовал 👍
Записи будут отправлены в ближайшее время
Записи будут отправлены в ближайшее время
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11
Занятия скоро начнутся 🔜
Если вы хотите начать заниматься, то еще несколько дней у вас есть возможность записаться на бесплатное пробное занятие.
Что произойдет на занятии❓
Подробнее - пост
Задать вопрос или записаться - @nvrmanager
Если вы хотите начать заниматься, то еще несколько дней у вас есть возможность записаться на бесплатное пробное занятие.
Что произойдет на занятии
- Расскажу все про олимпиады по информатике
- Объясню, на какие олимпиады нужно регистрироваться, чтобы поступить
- Начнём готовиться и познакомимся с понятием асимптотики
Подробнее - пост
Задать вопрос или записаться - @nvrmanager
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍2