1165eb65c1a7c6d10037da96d85e1ffc.ppt
- Количество слайдов: 13
ОЛИМПИАДНОЕ ПРОГРАММИРОВАНИЕ Булыгина Людмила Викторовна lus 0561@gmail. com 0505727023
Темы олимпиадных задач 1. Задачи без массивов. Основные численные алгоритмы (НОД, Э вклид, Фибоначчи, факториал, вычисление степеней и дробей, простые числа, ряды, переводы и действия в с/счисления) 2. Массивы. Одномерные массивы. Двумерные массивы. Ввод, хранение , обработка. Алгоритмы поиска и сортировки. Поиск элемента в неупорядоченном массиве. . Поиск в упорядоченном n-мерном массиве. Поиск k-го по величине элемента массива. Простые методы сортировки. Быстрые методы cортировки 3. Вычислительная геометрия. Длина отрезка. Уравнение прямой. Скалярное и векторное произведение. Точка пересечения отрезков. Принадлежность точки фигуре на плоскости. Треугольники и многоугольники 4. Рекурсия. Математические функции, задаваемые рекурсивно. Примеры рекурсивных подпрограмм. 5. "Длинная" арифметика Хранения в программе чисел, которые не вмещаются в стандартные типы. Арифметические операции над "длинными" числами. 6. Решение задач методом перебора вариантов Применение рекурсии для перебора. Полный перебор. Отсечение вариантов 7. Комбинаторные алгоритмы. Генерация сочетаний, размещений, перестановок. 8. Алгоритмы на графах. Структуры данных для представления графа в программе. Алгоритмы обхода графа (поиски в ширину и глубину). Алгоритм Дейкстры и Флойда. 9. «Жадные» алгоритмы 10. Динамическое программирование
Методика подготовки • • Освоение теоретической части Разбор алгоритмов Поиск решений Кодирование
КНИГИ Ларина Э. С. (отсканировано) Меньшиков Ф. (скачано) Окулов (скачано)
САЙТЫ "Олимпиады по физике и информатике в Виннице" "Олимпиадная информатика" Программирование и алгоритмы от М. Густокашина Школа программиста
Задачи без массивов • Системы счисления. Переводы из одной системы счисления в другую. Действия в системах счисления. • Основные алгоритмы: поразрядное деление, простые , совершенные числа, числа Фибоначчи, степени, дроби, ряды, НОД, НОК, алгоритм Эвклида, факториал, разложение на сомножители, разложение на слагаемые Тренировочное задание 1
Задачи с массивами • Одномерные и двумерные массивы: описание, заполнение, обработка, слияние. • Поиск минимального и максимального элемента • Алгоритмы сортировок Тренировочное задание 2
Вычислительная геометрия Основные формулы и алгоритмы • 1. Уравнения линий. • 2. Взаимное расположение точек и фигур. • 3. Взаимное расположение фигур и нахождение точек их пересечения. • 4. Расстояние от точки до фигуры или между фигурами. • 5. Особые точки многоугольников и множеств N точек плоскости. • 6. Многоугольник и множество точек плоскости. • 7. Векторы. Тренировочное задание 3
Рекурсия • Понятие. Рекурсивный спуск, рекурсивный подъем. • Математические функции, задаваемые рекурсивно. • Примеры рекурсивных подпрограмм и функций: (факториал, степень, числа Фибоначчи, обход шахматной доски). Урок по рекурсии Тренировочное задание 4
"Длинная" арифметика • Хранение в программе чисел, которые не помещаются в стандартные типы. • Арифметические операции над "длинными" числами. Тренировочное задание 5
Перебор • • Полный перебор Сокращение перебора Применение рекурсии для перебора. Отсечение вариантов Тренировочное задание 6
Комбинаторные алгоритмы • Перестановки (Pn-число перестановок) – сколькими способами можно переставить N различных предметов, расположенных на N различных местах. Pn =N! • Размещения(Anm) –сколькими способами можно выбрать и разместить по M различным местам M из N различных предметов. Anm=N!/(N-M)! • Сочетания (выборки Cnm) – сколькими способами можно выбрать M из N различных предметов. Cnm=N!/(M!*(N-M)!) Описание комбинаторных алгоритмов
Алгоритмы на графах • Основные понятия теории графов • Структуры данных для представления графа в программе. • Алгоритмы обхода графа (поиски в ширину и глубину). • Алгоритм Дейкстры и Флойда
1165eb65c1a7c6d10037da96d85e1ffc.ppt