Собирайте вещи и приезжайте в лагерь! Если вы из другого города, не забудьте заполнить анкету о приезде.

Вступительная работа

Чтобы попасть в лагерь, нужно выполнить вступительную работу. Те, кто хорошо сдал зачёт в прошлом году, участвовал в олимпиадах или уже поступил в ЛКШ в этом году, могут не решать вступительную.

Учебные параллели

По вступительной работе мы определяем ваш уровень владения алгоритмами, техникой программирования и решения задач. Поступающие близкого уровня объединяются в параллели. У каждой параллели своя учебная программа и свои вступительные задачи. Посмотрите на описания параллелей ниже, обратите внимание на список тем, изучавшихся в прошлом году. Вы можете поступить только в те параллели, которые соответствуют вашему возрасту. Также нельзя поступать в ту параллель, в которой вы уже учились (не относится к A и P), или в более младшую.

Выбор параллели

Обратите внимание на новую параллель промышленного программирования P. Алгоритмические параллели условно упорядочены от младших к старшим, от D к A. Выберите наиболее младшую параллель из тех, в которых вы не знакомы со значительной частью программы. Вы должны владеть всеми или почти всеми темами всех предыдущих параллелей.

Не имеет смысла поступать в параллель выше вашего текущего уровня. От знания сложных алгоритмов мало толку без уверенного владения стандартными. Тем более бессмысленно нечестно заполнять тематическую анкету или несамостоятельно выполнять вступительную работу: последнее наверняка выявится проверкой на списывание, и вы вообще не поедете в ЛКЛ. Если вы всё же окажетесь в слишком сложной для вас параллели, преподаватели заметят это в первые дни лагеря и переведут вас в более подходящую. Верно и обратное: если вы окажетесь в слишком простой параллели, вас могут перевести выше. Но и то и другое чревато потерей времени в первые дни смены, поэтому отнеситесь к выполнению вступительной работы и заполнению тематической анкеты серьёзно.

Формат вступительной

Поступающим в параллели C′...A нужно решить практические задачи по программированию. Их принимает автоматическая тестирующая система. Зарегистрируйтесь в ней. Если вы решали вступительную в прошлом году, можете использовать старый логин. Не забудьте указать ваш логин в анкете поступающего. В тестирующей системе вы найдёте условия задач, и туда же будете сдавать решения — программы на одном из допустимых языков программирования. Поддерживаются: C, C++, Python 2, Python 3, Free Pascal, Delphi, Java и Go. Учитываются только правильные решения, то есть проходящие все тесты. У параллелей D и P особый формат вступительной, смотрите их описание ниже.

Решение вступительной

Попробуйте решить задачи выбранной параллели. Ничего страшного, если у вас получится решить не все задачи. Сдайте то, что получилось — может быть, этого хватит для поступления. Если получается совсем плохо, попробуйте задачи более младшей параллели. Решайте вступительную самостоятельно! Нам интересно, как решаете задачи именно вы, а не ваши друзья, учителя или родители.

Зачисление

Для каждой параллели учитывается только суммарное количество решённых задач из неё. Решать можно вступительную для нескольких параллелей. Вы будете зачислены, если пройдете по конкурсу хотя бы в одну из них. Мы можем изменить параллель, в которую вы будете зачислены, если посчитаем нужным. Внимательно и честно заполняйте тематическую анкету, это тоже влияет на зачисление и определение параллели. К сожалению, мы вынуждены отказать в зачислении тем, кто получил на зачёте в прошлом году оценку «неудовлетворительно».

Поддержка

Узнать о том, как работать в тестирующей системе, и посмотреть примеры оформления программ вы можете в справке и FAQ. Прочитайте памятку участника краевой олимпиады. В ней разобраны частые ошибки решающих. Любые вопросы про вступительную работу и тестирующую систему задавайте по почте mail@sicamp.ru или в группе ВК.

Учебные параллели

D

6...7 классы

Основы программирования

Вы изучите

  • Основные принципы написания программ и работы в среде разработки.
  • Базовые типы данных и выражения языка программирования.
  • Базовые алгоритмы теории чисел, комбинаторики, теории графов.

Мы ожидаем, что вы

  • Умеете проводить простейшие математические рассуждения.
  • Знакомы с понятием алгоритма.
  • Не обязательно умеете программировать.
Вступительная для параллели D

Вступительная работа для параллели D состоит из семи теоретических задач и не требует умения программировать. Скачайте задачи вступительной. Нужно не только найти ответ к задаче, но и объяснить, почему он получается таким. Не страшно, если у вас получаются не все задачи. Оформите то, что получилось: возможно, этого хватит. Если какую-то задачу вы решили не до конца, всё равно оформите её. Это принесёт дополнительные очки.

Оформите работу в Microsoft Word, Open Office или просто текстовым файлом. Можете оформить решение на бумаге, тогда отсканируйте или сфотографируйте его. Оформленную работу присылайте на почту mail@sicamp.ru. В теме письма обязательно напишите «Вступительная в ЛКЛ, параллель D» и ваши имя и фамилию. Вы можете отправить работу несколько раз, мы рассмотрим только последнюю версию.

Что изучали в прошлом году
Работа со средой программирования. Ввод-вывод, работа с файлами. Целые типы данных, арифметические операции. Логический тип данных, логические операции. Стиль оформления программ. Циклы. Одномерные, многомерные массивы. Символы, строки. Написание функций, рекурсия. Признаки делимости. Остатки по модулю. Алгоритм Евклида. Квадратичные сортировки. Простые числа, делимость, факторизация числа за корень. Решето Эратосфена. Системы счисления. Понятие графа, его представление в программе.

C′

6...8 классы

Алгоритмы для начинающих

Вы изучите

  • Базовые алгоритмы теории чисел, комбинаторики, теории графов.
  • Базовые структуры данных.
  • Алгоритмы сортировки, в том числе быстрой.

Мы ожидаем, что вы

  • Владеете основами языка программирования: вводом-выводом, базовыми операторами и типами данных.
  • Имеете небольшой опыт решения задач, можете самостоятельно довести простейшие программы до рабочего состояния.

Вступительные задачи

  • Чёткость
  • Делимость на девять
  • Удобные грядки
Что изучали в прошлом году
Простые числа, делимость, факторизация числа за корень. Решето Эратосфена. Стек. Очередь. Строки. Квадратичные сортировки. Бинарный поиск. Введение в динамическое программирование. Рекурсия. Комбинаторика: формулы для количества, перечисление всех элементов. Понятие графа, его представление в программе. Обход графа в глубину, в ширину. Сортировка слияниями.

C

7...9 классы

Базовые алгоритмы

Вы изучите

  • Базовые структуры данных.
  • Техники бинарного поиска, динамического программирования, хеширования.
  • Классические алгоритмы теории графов.

Мы ожидаем, что вы

  • Уверенно владеете основами языка программирования.
  • Имеете опыт решения задач.
  • Знаете базовые алгоритмы комбинаторики и теории чисел.

Вступительные задачи

  • Делимость на девять
  • Удобные грядки
  • Ленивая подготовка к ЛКЛ
  • Сладенькая игра
Что изучали в прошлом году
Стек. Очередь. Бинарный поиск. Введение в динамическое программирование. Наибольшая возрастающая подпоследовательность, наибольшая общая подпоследовательность. Куча, быстрая сортировка. Хеширование. Хеш-таблица. Понятие графа, его представление в программе. Обход графа в глубину, в ширину. Топологическая сортировка графа. Алгоритм Дейкстры. Алгоритм Флойда. Рекурсия, перечисление комбинаторных объектов. Определение комбинаторного объекта по номеру, и номера по объекту.

B′

7...10 классы

Практическое применение алгоритмов в олимпиадных задачах

Вы изучите

  • Применение и более глубокое изучение уже известных алгоритмов.
  • Практика решения задач с использованием нетривиальных приёмов и алгоритмов.

Мы ожидаем, что вы

  • Уверенно владеете основами языка программирования.
  • Знаете алгоритмы параллелей C′ и C.
  • Имеете опыт решения задач.

Вступительные задачи

  • Ленивая подготовка к ЛКЛ
  • Сладенькая игра
  • Выбор подарков
  • Это не шутки
Что изучали в прошлом году
Сортировки. Жадные алгоритмы. Бинарный поиск. Тернарный поиск. События на прямой. Сканирующая прямая. Комбинаторика правильных скобочных последовательностей. Хеширование. Хеш-таблица. Обходы в глубину/в ширину на неявных графах. Алгоритм Дейкстры. Алгоритм Флойда. Алгоритм Форда-Беллмана. Техника двух указателей. Элементарная вычислительная геометрия: вектора, операции с ними, задание простейших геометрических объектов. Геометрия многоугольников, построение выпуклой оболочки множества точек.

B

8...10 классы

Алгоритмы и структуры данных

Вы изучите

  • Cтруктуры данных на основе деревьев.
  • Алгоритмы на строках и графах.
  • Продвинутые методы динамического программирования.
  • Задачи вычислительной геометрии.

Мы ожидаем, что вы

  • Уверенно владеете языком программирования.
  • Имеете опыт решения задач с применением алгоритмов.
  • Знаете основные алгоритмы на графах, алгоритм быстрой сортировки, основные структуры данных (стек, очередь, список, куча).
  • Уверенно владеете техниками перебора, динамического программирования.

Вступительные задачи

  • Выбор подарков
  • Это не шутки
  • День дружбы
  • Умножение и деление
Что изучали в прошлом году
Дерево отрезков. Разреженные таблицы. Декартово дерево по явному и неявному ключу. Наибольшая возрастающая подпоследовательность, наибольшая общая подпоследовательность. Динамическое программирование по подотрезкам. Динамическое программирование по подмножествам. Динамическое программирование по поддеревьям. Продвинутые применения обхода в глубину: топологическая сортировка, поиск мостов и точек сочленения. Алгоритм Дейкстры. Алгоритм Флойда. Алгоритм Форда-Беллмана. Алгоритм Прима. Алгоритм Краскала. Система непересекающихся множеств. Элементарная вычислительная геометрия: вектора, операции с ними, задание простейших геометрических объектов. Геометрия окружностей. Геометрия многоугольников, построение выпуклой оболочки множества точек. Эффективный поиск пары ближайших точек. Хеширование. Хеш-таблица. Алгоритм Кнута-Морриса-Пратта, Z-функция. Бор. Расширенный алгоритм Евклида. Обращение элемента по простому модулю. Понятие первообразного корня по простому модулю.

A′

9...10 классы

Алгоритмы и структуры данных++

Вы изучите

  • Примение алгоритмов и техник параллели B к решению задач.
  • Продвинутые алгоритмы: игры на графах, паросочетания, динамическое программирование по профилю.

Мы ожидаем, что вы

  • Решали сложные задачи и участвовали в олимпиадах.
  • Знакомы с темами параллели B: деревом отрезков, строковыми алгоритмами, алгоритмами на графах.

Вступительные задачи

  • День дружбы
  • Умножение и деление
  • Скобочки
  • Плагиат
Что изучали в прошлом году
Динамическое программирование по подотрезкам. Динамическое программирование по подмножествам . Динамическое программирование по поддеревьям. Динамическое программирование по профилю и изломанному профилю. Практика решения сложных задач динамического программирования. Дерево отрезков. Дерево Фенвика. Декартово дерево. Применение структур данных вместе с техникой сканирующей прямой. Хеширование. Хеш-таблица. Алгоритм Кнута-Морриса-Пратта, Z-функция. Бор. Алгоритм Ахо-Корасик. Алгоритм Прима. Алгоритм Краскала. Система непересекающихся множеств. Паросочетания в двудольном графе, алгоритм Куна. Игры на ациклических графах. Ретроанализ. Игра в ним и функция Гранди. Геометрия окружностей. Геометрия многоугольников, построение выпуклой оболочки множества точек.

A

9...10 классы

Продвинутые алгоритмы и решение олимпиадных задач высокого уровня

Вы изучите

  • Решение многоходовых задач с использованием сложных алгоритмов и структур данных.
  • Продвинутые алгоритмы: потоки, игры на графах, LCA и центроидная декомпозиция дерева.
  • Практика написания контестов на время.

Мы ожидаем, что вы

  • Имеете значительный опыт решения задач и участия в олимпиадах.
  • Уверенно владеете алгоритмами параллели B, в том числе структурами данных.

Вступительные задачи

  • Умножение и деление
  • Скобочки
  • Плагиат
  • Уровень допуска
Что изучали в прошлом году
Дерево отрезков. Персистентные структуры данных. Корневая оптимизация. Максимальный поток в графе. Алгоритм Диница поиска максимального потока. Поиск максимального потока минимальной стоимости. Игры на ациклических графах. Ретроанализ. Игра в ним и функция Гранди. Бор. Алгоритм Ахо-Корасик. Эффективный поиск наименьшего общего предка двух вершин в корневом дереве. Центроидная декомпозиция дерева. Динамическое программирование по подмножествам. Динамическое программирование по поддеревьям. Практика решения сложных задач динамического программирования. Применение структур данных в задачах динамического программирования. Практика решения сложных задач вычислительной геометрии. Практика написания индивидуальных контестов с ограниченным временем.

P

9...10 классы

Промышленное программирование

Новая, экспериментальная параллель. В ней мы ждём опытных ребят (уровня параллели B и выше), которым интересно узнать, как ведётся промышленная разработка большого проекта.

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

Во второй части вас ждёт разработка программного продукта под чутким контролем преподавателей.

Подробное описание параллели P, её программы и вступительной работы мы подготовили в репозитории introductory-work-2017. Решения вступительной работы для этой параллели мы принимаем до 4-го июня.

Бонусы

Параллель P

Если вы хотите поступить в параллель промышленного программирования P, вам нужно выполнить вступительную работу для этой параллели в любом случае. Независимо от олимпиад, ЛКШ и зачёта ЛКЛ в предыдущем году.

Участникам Всероссийской олимпиады школьников по информатике

Можете не решать вступительную, если вы участвовали в заключительном этапе Всероссийской олимпиады школьников по информатике 2016−17 года.

Поступившим в ЛКШ

Если вы поступили в ЛКШ, но по каким-то причинам не можете туда поехать, мы готовы зачислить вас в соответствующую параллель. Если вы хотите поехать в ЛКЛ после ЛКШ, вступительную вам решать тоже не нужно (параллель мы выберем одной из следующих по уровню, и возможно изменим её по результатам зачёта в ЛКШ), но вашего зачисления мы не гарантируем — нам хочется, чтобы как можно больше ребят имели возможность поучиться.

Освобождённые от вступительной по результатам зачёта ЛКЛ в прошлом году:

  • Александр Гагарин
  • Александр Круглов
  • Алибек Альгожин
  • Анастасия Макеева
  • Анна Тимискова
  • Артём Бурдин
  • Благой Димитров
  • Богдан Гужин
  • Валерия Баранова
  • Виталий Кольцов
  • Глеб Оборин
  • Даниил Логунов
  • Дарья Фролова
  • Егор Постников
  • Игорь Зверев
  • Ирина Собянина
  • Максим Альжанов
  • Максим Няшин
  • Михаил Сухов
  • Надежда Грачёва
  • Николай Смирнов
  • Петр Яковлев
  • Семён Шарцев
  • Серафим Кузьмин
  • Тимур Хасанов