Задачи целочисленной арифметики Задачи из теории графов
- выделение цифр числа - базовые понятия теории графов
- простые числа, разложение числа на простые множители - представление графов в памяти компьютера - нахождение НОД и НОК - проверка связности (BFS, DFS) - решето Эратосфена - топологическая сортировка - перевод числа из одной СС в другую - Эйлеров и Гамильтонов циклы (пути) в графе - длинная арифметика - кратчайший путь в графе методами поиска в ширину, Дейкстра, Флойда, - признаки делимости на 2,3,4,5,8,9,10,11,64 Беллмана-Форда - работа с представлением числа в памяти в виде двоичного кода - построение минимального остовного дерева методами Прима и Краскала Поиск и сортировка - нахождение максимального паросочетания - последовательный поиск и делением пополам - нахождение максимального потока в графе - простые сортировки сравнением (обменом, выбором, вставкой) Геометрические задачи - быстрая сортировка - декартова и полярная система координат - сортировка слиянием - расстояние между точками - сортировки без сравнений (подсчетом) - уравнения прямой по 2 точкам (3 вида) Комбинаторика - точка пересечения двух прямых - комбинаторные формулы (перестановки, размещения, сочетания) - признаки параллельности и перпендикулярности прямых - комбинаторные алгоритмы - построение прямой, перпендикулярной (параллельной) данной, Задачи на перебор проходящей через 3-ю точку - организация полного перебора - положение точки относительно прямой - перебор с отсечениями - угол между прямыми - перебор с возвратом (back tracking) - середина отрезка [задача о ферзях] - пересечение двух отрезков Задачи с использованием структур данных - расстояние между отрезками - стек [скобки, калькулятор] - принадлежность точки многоугольнику - очередь [путник в лабиринте] , дек - взаимное расположение многоугольников - приоритетная очередь (куча) [путник со штрафами] - площадь многоугольника - список [контур пересечения многоугольников] -окружности - дерево [ближайший общий предок, минимальное покрытие] - построение выпуклой оболочки - система непересекающихся множеств Приёмы, используемые на олимпиадах по программированию - дерево отрезков, sparse table, SQRT-декомпозиция, RMQ - использование таймера Задачи на рекуррентные соотношения - работа с файлами - рекурсия - динамическая память - динамическое программирование - использование дополнительных сред программирования [факториал], [число Фибоначчи], [ханойские башни] Проведение олимпиады и подведение итогов [игры Баше, Баше 2D, 9999] - практический тур - максимальная монотонная подпоследовательность O(n2), O(n log n) - тестирование [количество различных путей путника в прямоугольной таблице] - подведение итогов [количество правильных расстановок скобок (и сами расстановки)] - разбор задач префиксные суммы [максимальный квадрат из единиц] - максимальная общая подпоследовательность - задача о рюкзаке