SlideShare a Scribd company logo
План подготовки к олимпиадам по информатике




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



Раздел 1. Математические основы программирования

Раздел 2. Техника программирования

1. Основы языка программирования (Паскаль, Си)

Переменные и простейшие типы данных, размеры типов. Линейные программы. Условные
операторы. Циклы. Процедуры и функции. Сложные типы данных (массивы, строки, записи,
указатели, файлы).

2. Массивы

Одномерные массивы. Двумерные массивы (матрицы). Многомерные массивы.

3. Строки. Элементы лексического и синтаксического разбора

Операции над строками. Лексемы, подсчет лексем различных типов. Выделение чисел из строки.

4. Работа с файлами

Чтение и запись в текстовый файл. Преобразование полученных из файла данных в удобную
структуру. Работа с типизированными файлами. Нетипизированные файлы. Буферизация ввода.

5. Рекурсия

Математические функции, задаваемые рекурсивно. Примеры рекурсивных подпрограмм.
Проблема остановки рекурсии. Замена рекурсии итерацией.

6. "Длинная" арифметика

Хранения в программе чисел, которые не вмещаются в стандартные типы. Арифметические
операции над "длинными" числами. "Длинные" числа с десятичной частью. Извлечение корня с
заданной точностью.

7. Хранение информации в динамической памяти.

Хранение набора данных в линейных списках. Вставка в список, удаление из списка, поиск
элемента в списке. Двусвязные списки. Понятия структур данных стека, кольца, очереди, дека;
реализация их с помощью динамической памяти. Двоичные деревья. Деревья с неопределенным
числом потомков. Хранение больших массивов.
Раздел 3. Алгоритмы, методы и принципы решения задач

1. Понятие сложности алгоритма.

Определение сложности. Классы задач P и NP. NP-полные задачи.

2. Алгоритмы поиска и сортировки

Поиск элемента в неупорядоченном массиве. Двоичный поиск по ключу в упорядоченном
массиве (дихотомия). Поиск методом Фибоначчи. Поиск в упорядоченном n-мерном массиве.
Поиск k-го по величине элемента массива. Простые методы сортировки ("пузырек", "выборка",
"вставка", "подсчет"). Быстрые методы ("быстрая", "слиянием", "пирамидальная"), балансировка
двоичных деревьев. Сортировка методом черпака.

3. Решение задач методом перебора вариантов

Применение рекурсии для перебора. Генерация сочетаний, размещений, перестановок и булеана
множества. Полный перебор. Отсечение вариантов (эвристики). Метод ветвей и границ.

4. Вычислительная геометрия и численные методы

Длина отрезка. Уравнение прямой. Скалярное и векторное произведение. Точка пересечения
отрезков. Принадлежность точки фигуре на плоскости (например: треугольнику). Площадь
выпуклого многоугольника. Выпуклая оболочка множества точек: алгоритмы Грэхема, Джарвиса,
"разделяй и властвуй". Ближайшая пара точек. Метод Гаусса для решения системы линейных
уравнений. Нахождение решения уравнения.

5. Принцип динамического программирования

Понятие, применимость. Сравнение с перебором.

6. Жадные алгоритмы

Понятие, применимость. Сравнение с перебором и динамическим программированием.

7. Теория графов. Алгоритмы на графах

Понятие графа. Определения теории графов. Структуры данных для представления графа в
программе. Алгоритмы обхода графа (поиски в ширину и глубину). Лабиринт (метод волны).
Эйлеров цикл. Кратчайший путь во взвешенном графе (алгоритмы Дейкстры и Минти).
Транзитивное замыкание графа (алгоритм Флойда-Уоршилла). Минимальное остовное дерево
(алгоритмы Прима и Краскала). Топологическая сортировка графа. Потоки в сетях (алгоритм
Форда-Фалкерсона). Паросочетания в двудольном графе (метод удлиняющей цепочки, потоковое
решение). Задача о назначениях, назначения на узкое место (венгерский алгоритм). Игры на
графах. Раскраска графа. Уложение графа на плоскости. Сильная связность и двусвязность графа.
Изоморфизм графов. K-клика. Гамильтонов цикл.

8. Лексический и синтаксический анализ

Задача "Калькулятор". Синтаксические диаграммы. Формы Бэкуса-Наура. Стековая и рекурсивная
модель синтаксического разбора. Конечные автоматы. Грамматики.

9. Задачи с "изюминками"
Раздел 4. Олимпиады по информатике

1. Правила проведения олимпиад по программированию

2. Типичные ошибки и отладка программ

3. Приемы олимпиадчика



 По-моему, наибольшую ценность представляют разделы 2 и 3. Если с изучением языка
программирования у вас не должно возникнуть сложностей (огромное количество книг по этой
теме), то вот с алгоритмами придется посложнее. Книг по этой теме тоже немало, но они, чаще
всего, слишком перегружены теорией, а на олимпиадах нужна только практика. Из электронных
источников по алгоритмам могу посоветовать книгу С.М.Окулова и сайт algolist.manual.ru, который
менее нацелен на изучение "олимпиадной информатики", чем книга Окулова, но содержит
большое количество алгоритмов, которых нет в книги, но которые неплохо было бы знать.

 Привыкайте работать в режиме: написание + отладка на Borland Pascal/Borland C++, а компиляция
(с предварительным изменением констант) на Free Pascal/GNU C. Новые 32-битные компиляторы
не имеют жесткого ограничения в памяти и работают существенно быстрее (особенно заметна
разница в скорости выполнения 16 и 32-битных программ на P4). Такая хитрая тактика
объясняется отсутствием приличного отладчика в новых платформах и их практически полной
совместимостью с компиляторами фирмы Borland (в FP не забывайте делать close для выходного
файла).



Вот пожалуй и все, план предоставлен Шамилем Ягияевым за что большое ему спасибо! Кстати
вы можете посетить отличный сайт uoi.kiev.ua, одним из разработчиков которого Шамиль и
является. Этот сайт содержит материалы Украинских олимпиад по информатике, сборов и т.п.

More Related Content

Similar to минимум олимпиадника

Алгоритмы и структуры данных весна 2014 лекция 1
Алгоритмы и структуры данных весна 2014 лекция 1Алгоритмы и структуры данных весна 2014 лекция 1
Алгоритмы и структуры данных весна 2014 лекция 1Technopark
 
аксиоматический подход в математике матрицы и определители
аксиоматический подход в математике матрицы и определителиаксиоматический подход в математике матрицы и определители
аксиоматический подход в математике матрицы и определители
Anna1978
 
Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1Technopark
 
435.элементы теории множеств и математической логики теория и задачи
435.элементы теории множеств и математической логики теория и задачи435.элементы теории множеств и математической логики теория и задачи
435.элементы теории множеств и математической логики теория и задачиivanov15548
 
2020 03-31-lection
2020 03-31-lection2020 03-31-lection
2020 03-31-lection
Olga Leshchenko
 
Формирование технологической и информационной компетентности школьников при и...
Формирование технологической и информационной компетентности школьников при и...Формирование технологической и информационной компетентности школьников при и...
Формирование технологической и информационной компетентности школьников при и...balin777
 
тема множество для загрузки 2013
тема множество для загрузки 2013тема множество для загрузки 2013
тема множество для загрузки 2013AliyaAringazinova
 
лекции 3 4 тема 1
лекции 3 4 тема 1лекции 3 4 тема 1
лекции 3 4 тема 1Noobie312
 
обработка информации и алгоритмы
обработка информации  и алгоритмыобработка информации  и алгоритмы
обработка информации и алгоритмыЕлена Ключева
 
Введение в алгоритмы и структуры данных
Введение в алгоритмы и структуры данныхВведение в алгоритмы и структуры данных
Введение в алгоритмы и структуры данных
Нижегородский институт управления
 
обработка информации и алгоритмы
обработка информации  и алгоритмыобработка информации  и алгоритмы
обработка информации и алгоритмыЕлена Ключева
 
Present cource matlab
Present cource matlabPresent cource matlab
Present cource matlab
Trubayev Alexander
 
File0 1cfa643bcb8a4dd691ff13631417a33b894e6c4d
File0 1cfa643bcb8a4dd691ff13631417a33b894e6c4dFile0 1cfa643bcb8a4dd691ff13631417a33b894e6c4d
File0 1cfa643bcb8a4dd691ff13631417a33b894e6c4d
ssusera868ff
 
04. фкгос по математике 10 11
04. фкгос по математике 10 1104. фкгос по математике 10 11
04. фкгос по математике 10 11
rassyhaev
 
Лекция 1. Анализ эффективности алгоритмов
Лекция 1. Анализ эффективности алгоритмовЛекция 1. Анализ эффективности алгоритмов
Лекция 1. Анализ эффективности алгоритмов
Mikhail Kurnosov
 
лекция1
лекция1лекция1
лекция1shagore
 
конспект урока
конспект урокаконспект урока
конспект урокаmbjygu
 
Metod intervaljv
Metod intervaljvMetod intervaljv
Metod intervaljv
ShishkinaIrina
 
17 pdf -_programmi
17 pdf -_programmi17 pdf -_programmi
17 pdf -_programmi
MBOU Spasskaya SOSH
 

Similar to минимум олимпиадника (20)

Алгоритмы и структуры данных весна 2014 лекция 1
Алгоритмы и структуры данных весна 2014 лекция 1Алгоритмы и структуры данных весна 2014 лекция 1
Алгоритмы и структуры данных весна 2014 лекция 1
 
аксиоматический подход в математике матрицы и определители
аксиоматический подход в математике матрицы и определителиаксиоматический подход в математике матрицы и определители
аксиоматический подход в математике матрицы и определители
 
Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1
 
435.элементы теории множеств и математической логики теория и задачи
435.элементы теории множеств и математической логики теория и задачи435.элементы теории множеств и математической логики теория и задачи
435.элементы теории множеств и математической логики теория и задачи
 
2020 03-31-lection
2020 03-31-lection2020 03-31-lection
2020 03-31-lection
 
Формирование технологической и информационной компетентности школьников при и...
Формирование технологической и информационной компетентности школьников при и...Формирование технологической и информационной компетентности школьников при и...
Формирование технологической и информационной компетентности школьников при и...
 
тема множество для загрузки 2013
тема множество для загрузки 2013тема множество для загрузки 2013
тема множество для загрузки 2013
 
лекции 3 4 тема 1
лекции 3 4 тема 1лекции 3 4 тема 1
лекции 3 4 тема 1
 
обработка информации и алгоритмы
обработка информации  и алгоритмыобработка информации  и алгоритмы
обработка информации и алгоритмы
 
Введение в алгоритмы и структуры данных
Введение в алгоритмы и структуры данныхВведение в алгоритмы и структуры данных
Введение в алгоритмы и структуры данных
 
обработка информации и алгоритмы
обработка информации  и алгоритмыобработка информации  и алгоритмы
обработка информации и алгоритмы
 
Present cource matlab
Present cource matlabPresent cource matlab
Present cource matlab
 
лекция 1
лекция 1лекция 1
лекция 1
 
File0 1cfa643bcb8a4dd691ff13631417a33b894e6c4d
File0 1cfa643bcb8a4dd691ff13631417a33b894e6c4dFile0 1cfa643bcb8a4dd691ff13631417a33b894e6c4d
File0 1cfa643bcb8a4dd691ff13631417a33b894e6c4d
 
04. фкгос по математике 10 11
04. фкгос по математике 10 1104. фкгос по математике 10 11
04. фкгос по математике 10 11
 
Лекция 1. Анализ эффективности алгоритмов
Лекция 1. Анализ эффективности алгоритмовЛекция 1. Анализ эффективности алгоритмов
Лекция 1. Анализ эффективности алгоритмов
 
лекция1
лекция1лекция1
лекция1
 
конспект урока
конспект урокаконспект урока
конспект урока
 
Metod intervaljv
Metod intervaljvMetod intervaljv
Metod intervaljv
 
17 pdf -_programmi
17 pdf -_programmi17 pdf -_programmi
17 pdf -_programmi
 

More from liz_f

Obrazovat standart informatika
Obrazovat standart informatikaObrazovat standart informatika
Obrazovat standart informatikaliz_f
 
Koncept informatika
Koncept informatikaKoncept informatika
Koncept informatikaliz_f
 
Imp informatika 2012 2013
Imp informatika 2012 2013Imp informatika 2012 2013
Imp informatika 2012 2013liz_f
 
тест циклические алгоритмы 1 вариант
тест циклические алгоритмы 1 варианттест циклические алгоритмы 1 вариант
тест циклические алгоритмы 1 вариантliz_f
 
архитектуро и устройства пк
архитектуро и устройства пкархитектуро и устройства пк
архитектуро и устройства пкliz_f
 
32531 testy
32531 testy32531 testy
32531 testyliz_f
 
разбор задач
разбор задачразбор задач
разбор задач
liz_f
 
условия
условияусловия
условияliz_f
 
базы данных
базы данныхбазы данных
базы данныхliz_f
 
кодекс об образовании
кодекс об образованиикодекс об образовании
кодекс об образованииliz_f
 
''спусковой крючок'' анимации
''спусковой крючок'' анимации''спусковой крючок'' анимации
''спусковой крючок'' анимацииliz_f
 

More from liz_f (11)

Obrazovat standart informatika
Obrazovat standart informatikaObrazovat standart informatika
Obrazovat standart informatika
 
Koncept informatika
Koncept informatikaKoncept informatika
Koncept informatika
 
Imp informatika 2012 2013
Imp informatika 2012 2013Imp informatika 2012 2013
Imp informatika 2012 2013
 
тест циклические алгоритмы 1 вариант
тест циклические алгоритмы 1 варианттест циклические алгоритмы 1 вариант
тест циклические алгоритмы 1 вариант
 
архитектуро и устройства пк
архитектуро и устройства пкархитектуро и устройства пк
архитектуро и устройства пк
 
32531 testy
32531 testy32531 testy
32531 testy
 
разбор задач
разбор задачразбор задач
разбор задач
 
условия
условияусловия
условия
 
базы данных
базы данныхбазы данных
базы данных
 
кодекс об образовании
кодекс об образованиикодекс об образовании
кодекс об образовании
 
''спусковой крючок'' анимации
''спусковой крючок'' анимации''спусковой крючок'' анимации
''спусковой крючок'' анимации
 

минимум олимпиадника

  • 1. План подготовки к олимпиадам по информатике Здесь представлен план, порядок изучаемых тем, который поможет вам научиться решать олимпиадные задачи или найти пробелы в своих знаниях. Раздел 1. Математические основы программирования Раздел 2. Техника программирования 1. Основы языка программирования (Паскаль, Си) Переменные и простейшие типы данных, размеры типов. Линейные программы. Условные операторы. Циклы. Процедуры и функции. Сложные типы данных (массивы, строки, записи, указатели, файлы). 2. Массивы Одномерные массивы. Двумерные массивы (матрицы). Многомерные массивы. 3. Строки. Элементы лексического и синтаксического разбора Операции над строками. Лексемы, подсчет лексем различных типов. Выделение чисел из строки. 4. Работа с файлами Чтение и запись в текстовый файл. Преобразование полученных из файла данных в удобную структуру. Работа с типизированными файлами. Нетипизированные файлы. Буферизация ввода. 5. Рекурсия Математические функции, задаваемые рекурсивно. Примеры рекурсивных подпрограмм. Проблема остановки рекурсии. Замена рекурсии итерацией. 6. "Длинная" арифметика Хранения в программе чисел, которые не вмещаются в стандартные типы. Арифметические операции над "длинными" числами. "Длинные" числа с десятичной частью. Извлечение корня с заданной точностью. 7. Хранение информации в динамической памяти. Хранение набора данных в линейных списках. Вставка в список, удаление из списка, поиск элемента в списке. Двусвязные списки. Понятия структур данных стека, кольца, очереди, дека; реализация их с помощью динамической памяти. Двоичные деревья. Деревья с неопределенным числом потомков. Хранение больших массивов.
  • 2. Раздел 3. Алгоритмы, методы и принципы решения задач 1. Понятие сложности алгоритма. Определение сложности. Классы задач P и NP. NP-полные задачи. 2. Алгоритмы поиска и сортировки Поиск элемента в неупорядоченном массиве. Двоичный поиск по ключу в упорядоченном массиве (дихотомия). Поиск методом Фибоначчи. Поиск в упорядоченном n-мерном массиве. Поиск k-го по величине элемента массива. Простые методы сортировки ("пузырек", "выборка", "вставка", "подсчет"). Быстрые методы ("быстрая", "слиянием", "пирамидальная"), балансировка двоичных деревьев. Сортировка методом черпака. 3. Решение задач методом перебора вариантов Применение рекурсии для перебора. Генерация сочетаний, размещений, перестановок и булеана множества. Полный перебор. Отсечение вариантов (эвристики). Метод ветвей и границ. 4. Вычислительная геометрия и численные методы Длина отрезка. Уравнение прямой. Скалярное и векторное произведение. Точка пересечения отрезков. Принадлежность точки фигуре на плоскости (например: треугольнику). Площадь выпуклого многоугольника. Выпуклая оболочка множества точек: алгоритмы Грэхема, Джарвиса, "разделяй и властвуй". Ближайшая пара точек. Метод Гаусса для решения системы линейных уравнений. Нахождение решения уравнения. 5. Принцип динамического программирования Понятие, применимость. Сравнение с перебором. 6. Жадные алгоритмы Понятие, применимость. Сравнение с перебором и динамическим программированием. 7. Теория графов. Алгоритмы на графах Понятие графа. Определения теории графов. Структуры данных для представления графа в программе. Алгоритмы обхода графа (поиски в ширину и глубину). Лабиринт (метод волны). Эйлеров цикл. Кратчайший путь во взвешенном графе (алгоритмы Дейкстры и Минти). Транзитивное замыкание графа (алгоритм Флойда-Уоршилла). Минимальное остовное дерево (алгоритмы Прима и Краскала). Топологическая сортировка графа. Потоки в сетях (алгоритм Форда-Фалкерсона). Паросочетания в двудольном графе (метод удлиняющей цепочки, потоковое решение). Задача о назначениях, назначения на узкое место (венгерский алгоритм). Игры на графах. Раскраска графа. Уложение графа на плоскости. Сильная связность и двусвязность графа. Изоморфизм графов. K-клика. Гамильтонов цикл. 8. Лексический и синтаксический анализ Задача "Калькулятор". Синтаксические диаграммы. Формы Бэкуса-Наура. Стековая и рекурсивная модель синтаксического разбора. Конечные автоматы. Грамматики. 9. Задачи с "изюминками"
  • 3. Раздел 4. Олимпиады по информатике 1. Правила проведения олимпиад по программированию 2. Типичные ошибки и отладка программ 3. Приемы олимпиадчика По-моему, наибольшую ценность представляют разделы 2 и 3. Если с изучением языка программирования у вас не должно возникнуть сложностей (огромное количество книг по этой теме), то вот с алгоритмами придется посложнее. Книг по этой теме тоже немало, но они, чаще всего, слишком перегружены теорией, а на олимпиадах нужна только практика. Из электронных источников по алгоритмам могу посоветовать книгу С.М.Окулова и сайт algolist.manual.ru, который менее нацелен на изучение "олимпиадной информатики", чем книга Окулова, но содержит большое количество алгоритмов, которых нет в книги, но которые неплохо было бы знать. Привыкайте работать в режиме: написание + отладка на Borland Pascal/Borland C++, а компиляция (с предварительным изменением констант) на Free Pascal/GNU C. Новые 32-битные компиляторы не имеют жесткого ограничения в памяти и работают существенно быстрее (особенно заметна разница в скорости выполнения 16 и 32-битных программ на P4). Такая хитрая тактика объясняется отсутствием приличного отладчика в новых платформах и их практически полной совместимостью с компиляторами фирмы Borland (в FP не забывайте делать close для выходного файла). Вот пожалуй и все, план предоставлен Шамилем Ягияевым за что большое ему спасибо! Кстати вы можете посетить отличный сайт uoi.kiev.ua, одним из разработчиков которого Шамиль и является. Этот сайт содержит материалы Украинских олимпиад по информатике, сборов и т.п.