Description
Курс посвящен методам решения олимпиадных задач по программированию. В настоящее время соревнования по информатике и программированию очень популярны среди школьников и студентов. Дипломы олимпиад и умение решать алгоритмические задачи помогают абитуриентам поступить в престижные вузы, а студентам - устроиться на работу в ведущие российские и зарубежные IT-компании.
По своему уровню курс ориентирован на начинающих участников олимпиад. Он подойдет школьникам, студентам, учителям информатики и программистам - любителям нестандартных задач. В курсе разбираются методы, которым редко уделяется внимание в школе или в вузе, но которые очень важны для успешных выступлений на олимпиадах по
программированию. При прохождении курса вы научитесь:
- реализовывать перебор,
- применять жадные алгоритмы и динамическое программирование,
- использовать битовые маски.
По завершении этого курса учащиеся смогут решать олимпиадные задачи по основным разделам курса: реализовывать перебор, применять жадные алгоритмы и динамическое программирование, использовать битовые маски.
Syllabus :
1. Перебор
- Вступительное видео
- Как будет проходить обучение
- Перебор всех возможных строк из заданных символов
- Рекурсивный перебор на примере
- Генерация перестановок
- Правильные скобочные последовательности
- Разбиение числа на слагаемые
- Задача коммивояжера. Перебор с отсечениями
2. Жадные алгоритмы
- Задача о размене
- Задача о расписании
- О времени работы алгоритмов и методах сортировки
- Задача о выборе заявок
- Дискретная и непрерывная задачи о рюкзаке
3. Динамическое программирование
- Задача о замощении полосы доминошками
- Задача про жучка
- Суммы в прямоугольниках
- Задача о размене
- Задача о рюкзаке
- Наибольшая общая подпоследовательность
4. Битовые маски
- Битовые операции: AND, OR, XOR, битовые сдвиги
- Перебор подмножеств с использованием битовых масок
- Динамика по битовым маскам
- Задача коммивояжера. Решение методом динамического программирования
- Задача “Паркет”. Динамика по профилю