Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Алгоритмы
Курсы ККДП
Дистрибутивы
Ссылки

HotLog


 
Решение олимпиадных задач по программированию

Решение олимпиадных задач по программированию

Курс "Решение олимпиадных задач по программированию" направлен на подготовку детей и развитие навыков к решению олимпиадных задач по спортивному программированию, что позволит им успешно участвовать в олимпиадах и даст возможность профессионального развития в этой области. Образовательная программа ориентирована на использование сайта http://acmp.ru в процессе обучения. Основная аудитория - учащиеся 8-11 классов, имеющие базовую подготовку и владеющие одним из языков программирования.

Настоящее методическое пособие не предназначено для самостоятельного изучения предмета, его назначение - это опорный конспект обучающегося в системе очных 2-часовых занятий по 2 занятия в неделю в течении 2 лет. Книга служит методическим обеспечением олимпиадного курса наряду с одноименным названием в разделе "Курсы" сайта "Школа программиста", который содержит набор тематических заданий для практических занятий с возможностью автоматической проверки и контроля выполненных заданий педагогом.

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

Содержание книги

Введение в олимпиадное программирование
    Пример олимпиадной задачи
    Реализация решения задачи «А+В»
Целочисленная арифметика
    Простые числа
    Числа Мерсенна
    Числа Ферма
    Совершенные числа
    НОК и НОД
    Числа Фибоначчи
    Алгоритмы с простыми числами
Алгоритмы сортировки
    Сортировка выбором (SelectSort)
    Сортировка пузырьком (BubbleSort)
    Сортировка в C++
    Сортировка структур в C++
    Сортировка подсчетом (CountSort)
    Пораздрядная сортировка (RadixSort)
    Быстрая сортировка (QuickSort)
    Сортировка слиянием (MergeSort)
Длинная арифметика
    Формы хранения длинных чисел
    Чтение, вывод  и сравнение
    Сложение, вычитание и умножение
    Деление длинного на короткое
    Реализация длинной арифметики на С++
Перестановки
    Понятие перестановки
    Перебор перестановок в C++
    Лексикографический перебор перестановок в Delphi 
    Next_Permutation в Delphi
    Алгоритмы перебора перестановок
Куча – структура данных
    Определение кучи
    Просеивание элемента (Heapify)
    Базовые операции при работе с кучей
    Пирамидальная сортировка (HeapSort)
    Задача «Коммерческий калькулятор»
STL – Standard Template Library
    STL и шаблоны в C++
    Пара (pair)
    Линейный массив (vector)
    Стек (stack)
    Очередь (queue)
    Дек (deque)
    Очередь с приоритетами (priority_queue)
    Строка (string)
    Множество (set)
    Ассоциативный массив (map)
    Алгоритмы (algorithm)
Динамическое программирование
    Факториал и числа Фибоначчи
    Задача «Пицца»
    Задача «Гвоздики»
    Задача «Зайчик»
    Задача «Компьютерная игра»
    Задача «Без двух нулей подряд»
    Задача «Максимальная подпоследовательность»
    Задача «Фермер»
    Задача «Игра-2»
    Задача «Сумма степеней двойки»
    Задача «Ход конем»
    Задача «Зоопарк»
    Задача «Игра в монеты»
    Задача «Шары и коробки»
    Задача «Китайские часы»
    Задача «Трипростые числа»
    Задача «Симпатичные узоры»
    Задача «Количество путей в лабиринте»
    Задача «Космический мусорщик»
    Задача «Объединение блоков»
    Задача «Лесенка»
    Задача «Раз-два, раз-два»
    Задача «Фотограф-зануда»
    Задача «Фермер-2»
    Задача «Счастливые билеты»
Комбинаторика
    Размещения
    Перестановки
    Сочетания
    Вычисление сочетаний
    Субфакториал
    Задача о разбиении числа
    Задача «Великий комбинатор»
    Задача «Волейбол»
Вычислительная геометрия
    Геометрические объекты
    Понятие вектора
    Скалярное и векторное произведение векторов
    Выражение псевдоскалярного произведения
    Полярная система координат
    Поворот точки на плоскости
    Уравнение прямой на плоскости
    Теорема Пика
    Длина объединения отрезков на прямой
    Проверка пересечения двух отрезков
    Пересечение окружности и прямой
    Пересечение двух окружностей
    Площадь многоугольника
    Принадлежность точки многоугольнику
    Методы Джарвиса и Грэхема построения выпуклой оболочки
Строки
    Определения
    Префикс-функция
    Z-функция
    Реализация построения префикс-функции и Z-функции
    Алгоритм Кнута-Морриса-Пратта
    Количество различных подстрок в строке
    Алгоритм Манакера
    Сжатие строки
Полиномиальный хеш
    Кольцо вычетов
    Полиномиальный хеш
    Сравнение строк с помощью хешей
    Подсчет различных строк
    Алгоритм Рабина-Карпа
    Вычисление Z-функции
    Поиск всех палиндромов в строке
    Лексикографически минимальный сдвиг
Структуры данных
    Базовые операции над массивом
    Sqrt-декомпозиция
    Дерево Фенвика
    Двумерное дерево Фенвика
    Sparse Table
    Дерево отрезков
Теория графов
    Понятие графа
    Определения и виды графов
    Способы представления графа
    Матрица весов
    Список дуг
    Описание Бержа
    Список смежности
    Реализация структур для графов в C++
    Поиск в глубину
    Реализация поиска в глубину
    Определение предка вершины в дереве
    Подсчет компонент связности
    Поиск цикла в графе
    Топологическая сортировка
    Задача «Производство деталей»
    Задача о шахматном коне
    Задача коммивояжера
    Поиск в ширину
    Задача «Lines – 2»
    Задача «Алхимия»
    Задача «Лабиринт»
    Алгоритм Флойда
    Алгоритм Форда-Беллмана
    Алгоритм Дейкстры
    Минимальный остов
    Свойства минимальных остовов
    Алгоритм Прима
    Алгоритм Крускала
    Система непересекающихся множеств
    Задача «Минимальный каркас»
    Эйлеров цикл и путь
    Алгоритмы поиска эйлерова цикла
    Задача «Ковбои»
    Задача «Домино»
    Сильная связность графа
    Поиск компонент сильной связности
    Поиск мостов
    Двудольный граф
    Проверка на двудольность и разбиение на доли
    Поиск максимального паросочетания
    Алгоритм Куна
    Задача о назначениях
    Венгерский алгоритм


Красноярский краевой Дворец пионеров, (c)2006 - 2017, ICQ: 151483