SlideShare a Scribd company logo
Всероссийская олимпиада школьников по
информатике
Региональный этап, I тур
Разбор задач
Андрианов И. А.
Стрекаловский О. А.
Вологодский государственный педагогический университет
Факультет прикладной математики,
компьютерных технологий и физики
Вологда
2014 г.
1/23 Всероссийская олимпиада школьников по информатике
Задача 1. POBEDA-2014
«POBEDA-2014»
Идея решения
Для того, чтобы нарисовать единичный квадрат, требуется
либо по одному треугольнику типа 1 и 2, либо по одному
треугольнику типа 3 и 4.
Таким образом, из a1 треугольников типа 1 и a2
треугольников типа 2 можно составить не более
min(a1, a2) квадратов, а из a3 треугольников типа 3 и a4
треугольников типа 4 — min(a3, a4) квадратов.
2/23 Всероссийская олимпиада школьников по информатике
Задача 1. POBEDA-2014
Код на Pascal и С++ весьма очевиден
Pascal :
var
a , b , c , d , n , SquareSize : int64 ;
. . .
n := Min (a , b) + Min ( c , d ) ;
SquareSize := trunc ( s q r t (1.0 ∗ n ) ) ;
C++:
long long a1 , a2 , a3 , a4 ;
. . .
long long n = min ( a1 , a2 ) + min ( a3 , a4 ) ;
long squareSize = s q r t (( long double )n ) ;
3/23 Всероссийская олимпиада школьников по информатике
Задача 1. POBEDA-2014
Аналогичный код на Java не проходит по точности большие
тесты из–за малой точности операции Math.sqrt() при больших
значениях аргумента
Способы решения:
Проверка полученного результата методом обратного
возведения в квадрат и корректировка значения, если
необходимо.
Применение метода Ньютона для вычисления
целочисленного корня из числа.1
1
http://e-maxx.ru/algo/roots_newton#2
4/23 Всероссийская олимпиада школьников по информатике
Задача 1. POBEDA-2014
Вопросы по задаче?
5/23 Всероссийская олимпиада школьников по информатике
Задача 2. Список школ
«Список школ»
Идея решения
При решении данной задачи необходимо сначала выделить
номера школ из каждой записи с названием школы и
сформировать массив, содержащий эти номера.
Используя полученный массив, определить, количество
школ и номера школ, которые встречаются в нем не более
пяти раз.
6/23 Всероссийская олимпиада школьников по информатике
Задача 2. Список школ
Детали реализации на Pascal
Двигаемся по строке и выделям в ней последовательность
цифр, добавляя её в виде строки в массив строк с
номерами школ.
Отсортируем массив номеров школ в лексикографическом
(алфавитном) порядке.
Используя полученный массив, определяем количество
школ и номера школ, которые встречаются в нем не более
пяти раз последовательным проходом по нему.
7/23 Всероссийская олимпиада школьников по информатике
Задача 2. Список школ
Детали реализации на Java/C++
Упростить поиск последовательности цифр в строке можно
с использованием регулярного выражения d+ (Java)
Для каждого номера школы хранить количество его
упоминаний в map<string, int>
Вывести из map все ключи, у которых значения ≤ 5
8/23 Всероссийская олимпиада школьников по информатике
Задача 2. Список школ
Вопросы по задаче?
9/23 Всероссийская олимпиада школьников по информатике
Задача 3. Межрегиональная олимпиада
«Межрегиональная олимпиада»
Идея решения
Отсортируем задачи по возрастанию времени окончания
их выполнения (start + time).
Пусть a[i] — максимальное количество баллов, которые
можно набрать, решая только задачи из числа «первых» i
задач.
Рассмотрим i–ю задачу. Пусть prev — это номер
последней задачи, которая заканчивается не позже, чем
выдается i–я задача (то есть startprev + timeprev ≤ starti,
a startprev+1 + timeprev+1 > starti).
Тогда a[i] = max(a[i − 1], a[prev] + cost[i]).
Из этого следует, что можно либо решить задачу с
номером i и какой-то набор задач с номерами не больше
prev, либо не решать задачу с номером i.
Ответом на поставленный вопрос будет число a[n].
10/23 Всероссийская олимпиада школьников по информатике
Задача 3. Межрегиональная олимпиада
Детали реализации
Искать задачу prev можно полным перебором за O(N),
двоичным поиском за O(log N).
Получение списка решаемых задач
Для получения списка задач, решение которых позволит
набрать сумму a[n], будем хранить дополнительный
массив take, в котором укажем, какой выбор был сделан
на каждом шаге.
Если a[i] = cost[i] + a[prev], то take[i] := prev.
Это будет означать, что решается задача с номером i, а
предыдущая задача имеет номер не больше prev.
В противном случае take[i]:= –1.
Теперь, пройдя с конца по массиву take, можно
восстановить список решаемых задач.
11/23 Всероссийская олимпиада школьников по информатике
Задача 3. Межрегиональная олимпиада
Вопросы по задаче?
12/23 Всероссийская олимпиада школьников по информатике
Задача 4. Дом Мэра
«Дом Мэра»
Основная сложность задачи. . .
13/23 Всероссийская олимпиада школьников по информатике
Задача 4. Дом Мэра
«Дом Мэра»
. . . разобрать все возможные случаи
13/23 Всероссийская олимпиада школьников по информатике
Задача 4. Дом Мэра
Рассмотрим подробно случай, когда дом имеет координаты
xi ≥ 0, yi ≥ 0 (остальные случаи будут почти аналогичны).
Рассмотрим пути, выходящие из мэрии на Север.
Возможны два варианта пути:
1 Eдем на Север, затем поворачиваем направо (на Восток),
и затем налево (опять на Север); при этом любой отрезок
пути может иметь длину, равную 0.
2 Eдем на Север, пересекая горизонтальную улицу, на
которой будет расположен дом Мэра, затем поворачиваем
направо (на Восток), и затем еще раз направо (обратно на
Юг).
Сравнивая эти два пути, можно сказать, что если существует
первый путь, то он всегда короче второго (если он существует).
14/23 Всероссийская олимпиада школьников по информатике
Задача 4. Дом Мэра
Выясним, как далеко мы сможем проехать из точки (0, 0) на
Север.
1 Найдём ближайший дом, который перекрывает нам путь
на Север (если такой существует).
2 Обозначим ординату (Y ) максимального удаления на
Север от мэрии за R.
3 Если дом находится на отрезке (0, R), то задача решена.
15/23 Всероссийская олимпиада школьников по информатике
Задача 4. Дом Мэра
Далее выясним, как далеко мы сможем проехать из точки
(xi, yi) на Юг до оси X.
1 Найдём ближайший дом, который перекрывает нам путь
на Юг (если такой существует).
2 Обозначим ординату (Y ) максимального удаления на Юг
от дома за S.
16/23 Всероссийская олимпиада школьников по информатике
Задача 4. Дом Мэра
Если S > R, то пути первого типа нет.
Иначе попытаемся найти минимальное значение t на отрезке
[S, R], т.ч. можно проехать из точки (0, t) в точку (xi, t)
17/23 Всероссийская олимпиада школьников по информатике
Задача 4. Дом Мэра
1 Рассмотрим все здания, которые пересекаются с полосой
0 ≤ x ≤ xi.
2 Рассмотрим их проекции на ось Oy, найдем объединение
этих проекций (открытых интервалов), и найдем точку t на
оси Oy, не покрытую объединением интервалов.
1 Для этого можно отсортировать вместе начала и концы
интервалов и пройти по этим точкам, считая баланс:
«количество точек, открывающих интервалы» – «количество
точек, закрывающих интервалы».
2 Если при проходе по точкам в некоторый момент мы получаем
баланс = 0, то данная точка и есть искомая t.
3 Если мы нашли t, то сделаем повороты в нужные стороны
в точках (0, t) и (xi, t). Иначе пути первого вида нет.
18/23 Всероссийская олимпиада школьников по информатике
Задача 4. Дом Мэра
Путь второго вида:
Eдем на Север, пересекая горизонтальную улицу, на которой
будет расположен дом Мэра, затем поворачиваем направо (на
Восток), и затем еще раз направо (обратно на Юг).
Если R ≤ yi, то пути второго вида также нет.
19/23 Всероссийская олимпиада школьников по информатике
Задача 4. Дом Мэра
Далее выясним, как далеко мы сможем проехать из точки
(xi, yi) на Север.
1 Найдём ближайший дом, который перекрывает нам путь
на Север (если такой существует).
2 Обозначим ординату (Y ) максимального удаления на
Север от дома за S.
20/23 Всероссийская олимпиада школьников по информатике
Задача 4. Дом Мэра
1 Рассмотрим отрезок [yi, min(R, S)] и найдем на нём
минимальную точку t, не покрытую объединением
проекций интервалов, рассмотренным выше.
2 Если такая точка t существует, то из всех путей,
выходящих из точки (0, 0) на Север, кратчайший путь
имеет повороты в точках (0, t) и (xi, t). В противном
случае таких путей нет.
3 Заметим, что если t = yi, то второй поворот не нужен.
21/23 Всероссийская олимпиада школьников по информатике
Задача 4. Дом Мэра
Вопросы по задаче?
22/23 Всероссийская олимпиада школьников по информатике
Заключение
Спасибо за внимание!
23/23 Всероссийская олимпиада школьников по информатике

More Related Content

What's hot

Численное решение ОДУ. Метод Эйлера
Численное решение ОДУ. Метод ЭйлераЧисленное решение ОДУ. Метод Эйлера
Численное решение ОДУ. Метод ЭйлераTheoretical mechanics department
 
6 клас 3 урок 2
6 клас 3 урок 26 клас 3 урок 2
6 клас 3 урок 2
Сергій Якуба
 
Функция y = x^2 и её график
Функция y = x^2 и её графикФункция y = x^2 и её график
Функция y = x^2 и её графикFormula.co.ua
 
20111202 machine learning_nikolenko_lecture03
20111202 machine learning_nikolenko_lecture0320111202 machine learning_nikolenko_lecture03
20111202 machine learning_nikolenko_lecture03Computer Science Club
 
05.01.2015. теория график функции у=х 2
05.01.2015. теория   график функции у=х 205.01.2015. теория   график функции у=х 2
05.01.2015. теория график функции у=х 2
Лариса Чаленко
 
Решение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементовРешение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементовTheoretical mechanics department
 
Doklad postroeniegraphikov 2
Doklad postroeniegraphikov 2Doklad postroeniegraphikov 2
Doklad postroeniegraphikov 2Kydas
 
Представление информации в компьютере
Представление информации в компьютереПредставление информации в компьютере
Представление информации в компьютере
Andrey Dolinin
 
уравнение с двумя переменными презентация
уравнение с двумя переменными презентацияуравнение с двумя переменными презентация
уравнение с двумя переменными презентацияsvetlana797
 
20070930 efficientalgorithms kulikov_lecture02
20070930 efficientalgorithms kulikov_lecture0220070930 efficientalgorithms kulikov_lecture02
20070930 efficientalgorithms kulikov_lecture02Computer Science Club
 
9 1.1 - системы счисления
9 1.1 - системы счисления9 1.1 - системы счисления
9 1.1 - системы счисленияjula-mam
 
Java.fundamentals
Java.fundamentalsJava.fundamentals
Java.fundamentals
Asya Dudnik
 
9893
98939893
9893
nreferat
 
Системы счисления
Системы счисленияСистемы счисления
Системы счисления
Отшельник
 
К.В. Воронцов "Нейронные сети (продолжение)"
К.В. Воронцов "Нейронные сети (продолжение)"К.В. Воронцов "Нейронные сети (продолжение)"
К.В. Воронцов "Нейронные сети (продолжение)"
Yandex
 
Факторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системахФакторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системах
romovpa
 

What's hot (19)

Численное решение ОДУ. Метод Эйлера
Численное решение ОДУ. Метод ЭйлераЧисленное решение ОДУ. Метод Эйлера
Численное решение ОДУ. Метод Эйлера
 
6 клас 3 урок 2
6 клас 3 урок 26 клас 3 урок 2
6 клас 3 урок 2
 
Функция y = x^2 и её график
Функция y = x^2 и её графикФункция y = x^2 и её график
Функция y = x^2 и её график
 
20111202 machine learning_nikolenko_lecture03
20111202 machine learning_nikolenko_lecture0320111202 machine learning_nikolenko_lecture03
20111202 machine learning_nikolenko_lecture03
 
05.01.2015. теория график функции у=х 2
05.01.2015. теория   график функции у=х 205.01.2015. теория   график функции у=х 2
05.01.2015. теория график функции у=х 2
 
Решение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементовРешение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементов
 
Doklad postroeniegraphikov 2
Doklad postroeniegraphikov 2Doklad postroeniegraphikov 2
Doklad postroeniegraphikov 2
 
Представление информации в компьютере
Представление информации в компьютереПредставление информации в компьютере
Представление информации в компьютере
 
уравнение с двумя переменными презентация
уравнение с двумя переменными презентацияуравнение с двумя переменными презентация
уравнение с двумя переменными презентация
 
20070930 efficientalgorithms kulikov_lecture02
20070930 efficientalgorithms kulikov_lecture0220070930 efficientalgorithms kulikov_lecture02
20070930 efficientalgorithms kulikov_lecture02
 
9 1.1 - системы счисления
9 1.1 - системы счисления9 1.1 - системы счисления
9 1.1 - системы счисления
 
Java.fundamentals
Java.fundamentalsJava.fundamentals
Java.fundamentals
 
9893
98939893
9893
 
Системы счисления
Системы счисленияСистемы счисления
Системы счисления
 
Метод конечных разностей
Метод конечных разностейМетод конечных разностей
Метод конечных разностей
 
презентация T
презентация Tпрезентация T
презентация T
 
К.В. Воронцов "Нейронные сети (продолжение)"
К.В. Воронцов "Нейронные сети (продолжение)"К.В. Воронцов "Нейронные сети (продолжение)"
К.В. Воронцов "Нейронные сети (продолжение)"
 
Факторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системахФакторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системах
 
20100926 ontology konev_lecture05
20100926 ontology konev_lecture0520100926 ontology konev_lecture05
20100926 ontology konev_lecture05
 

Similar to Разбор задач областного этапа всероссийской олимпиады школьников по информатике 2014г. I тур

Вариативная задачка про ФИО-этажный дом и стеклянные шарики
Вариативная задачка про ФИО-этажный дом и стеклянные шарикиВариативная задачка про ФИО-этажный дом и стеклянные шарики
Вариативная задачка про ФИО-этажный дом и стеклянные шарики
Анатолий Мячев
 
Григорий Анатольевич Кабатянский - Конечные алгебры, геометрии и коды
Григорий Анатольевич Кабатянский - Конечные алгебры, геометрии и кодыГригорий Анатольевич Кабатянский - Конечные алгебры, геометрии и коды
Григорий Анатольевич Кабатянский - Конечные алгебры, геометрии и кодыYandex
 
1 1 b kombinatorika 1-2 urok
1  1 b kombinatorika 1-2 urok1  1 b kombinatorika 1-2 urok
1 1 b kombinatorika 1-2 urok
Narvatk
 
Урок математики в 6 классе "Координатная плоскость"
Урок математики в 6 классе "Координатная плоскость"Урок математики в 6 классе "Координатная плоскость"
Урок математики в 6 классе "Координатная плоскость"
Kirrrr123
 
2 pol mat_2_klass
2 pol mat_2_klass2 pol mat_2_klass
2 pol mat_2_klass
Kirrrr123
 
1827 огэ-2016. математика. трен. задания мирошин в.в-2015 -96с
1827  огэ-2016. математика. трен. задания мирошин в.в-2015 -96с1827  огэ-2016. математика. трен. задания мирошин в.в-2015 -96с
1827 огэ-2016. математика. трен. задания мирошин в.в-2015 -96с
SpringRus
 
Метод координат
Метод координатМетод координат
Метод координат
Garik Yenokyan
 
как построить дерево вариантов
как построить дерево вариантовкак построить дерево вариантов
как построить дерево вариантовRumyanceva
 
варианты и ответы кдр по математике 9 класс 29 января 2014 1
варианты и ответы кдр по математике 9 класс   29 января 2014 1варианты и ответы кдр по математике 9 класс   29 января 2014 1
варианты и ответы кдр по математике 9 класс 29 января 2014 1Иван Иванов
 
Matematika 4-klass-skvortsova-2015-1
Matematika 4-klass-skvortsova-2015-1Matematika 4-klass-skvortsova-2015-1
Matematika 4-klass-skvortsova-2015-1
kreidaros1
 
Задворный б.в. (минск) от идеи к исследованию
Задворный б.в. (минск)   от идеи к исследованиюЗадворный б.в. (минск)   от идеи к исследованию
Задворный б.в. (минск) от идеи к исследованиюЛёха Гусев
 
Задворный б.в. (минск) от идеи к исследованию
Задворный б.в. (минск)   от идеи к исследованиюЗадворный б.в. (минск)   от идеи к исследованию
Задворный б.в. (минск) от идеи к исследованиюЛёха Гусев
 
математика 19.12.11
математика 19.12.11математика 19.12.11
математика 19.12.11vova123367
 
518 готовимся к экзамену по математике крамор в.с-2008 -544с
518  готовимся к экзамену по математике крамор в.с-2008 -544с518  готовимся к экзамену по математике крамор в.с-2008 -544с
518 готовимся к экзамену по математике крамор в.с-2008 -544с
psvayy
 
Olimpiada Zadachi 4 5kl
Olimpiada Zadachi 4 5klOlimpiada Zadachi 4 5kl
Olimpiada Zadachi 4 5klbusujeva
 
Tr12mat91
Tr12mat91Tr12mat91
2044 наибольшее и наименьшее
2044 наибольшее и наименьшее2044 наибольшее и наименьшее
2044 наибольшее и наименьшееjasperwtf
 
Chislovye i bukvennye_vyrazheniya_2
Chislovye i bukvennye_vyrazheniya_2Chislovye i bukvennye_vyrazheniya_2
Chislovye i bukvennye_vyrazheniya_2
Иван Иванов
 
букв выражения
букв выражениябукв выражения
букв выражения0lga1979
 

Similar to Разбор задач областного этапа всероссийской олимпиады школьников по информатике 2014г. I тур (20)

Вариативная задачка про ФИО-этажный дом и стеклянные шарики
Вариативная задачка про ФИО-этажный дом и стеклянные шарикиВариативная задачка про ФИО-этажный дом и стеклянные шарики
Вариативная задачка про ФИО-этажный дом и стеклянные шарики
 
Григорий Анатольевич Кабатянский - Конечные алгебры, геометрии и коды
Григорий Анатольевич Кабатянский - Конечные алгебры, геометрии и кодыГригорий Анатольевич Кабатянский - Конечные алгебры, геометрии и коды
Григорий Анатольевич Кабатянский - Конечные алгебры, геометрии и коды
 
1 1 b kombinatorika 1-2 urok
1  1 b kombinatorika 1-2 urok1  1 b kombinatorika 1-2 urok
1 1 b kombinatorika 1-2 urok
 
Урок математики в 6 классе "Координатная плоскость"
Урок математики в 6 классе "Координатная плоскость"Урок математики в 6 классе "Координатная плоскость"
Урок математики в 6 классе "Координатная плоскость"
 
2 pol mat_2_klass
2 pol mat_2_klass2 pol mat_2_klass
2 pol mat_2_klass
 
1827 огэ-2016. математика. трен. задания мирошин в.в-2015 -96с
1827  огэ-2016. математика. трен. задания мирошин в.в-2015 -96с1827  огэ-2016. математика. трен. задания мирошин в.в-2015 -96с
1827 огэ-2016. математика. трен. задания мирошин в.в-2015 -96с
 
Метод координат
Метод координатМетод координат
Метод координат
 
как построить дерево вариантов
как построить дерево вариантовкак построить дерево вариантов
как построить дерево вариантов
 
варианты и ответы кдр по математике 9 класс 29 января 2014 1
варианты и ответы кдр по математике 9 класс   29 января 2014 1варианты и ответы кдр по математике 9 класс   29 января 2014 1
варианты и ответы кдр по математике 9 класс 29 января 2014 1
 
Matematika 4-klass-skvortsova-2015-1
Matematika 4-klass-skvortsova-2015-1Matematika 4-klass-skvortsova-2015-1
Matematika 4-klass-skvortsova-2015-1
 
математика
математикаматематика
математика
 
Задворный б.в. (минск) от идеи к исследованию
Задворный б.в. (минск)   от идеи к исследованиюЗадворный б.в. (минск)   от идеи к исследованию
Задворный б.в. (минск) от идеи к исследованию
 
Задворный б.в. (минск) от идеи к исследованию
Задворный б.в. (минск)   от идеи к исследованиюЗадворный б.в. (минск)   от идеи к исследованию
Задворный б.в. (минск) от идеи к исследованию
 
математика 19.12.11
математика 19.12.11математика 19.12.11
математика 19.12.11
 
518 готовимся к экзамену по математике крамор в.с-2008 -544с
518  готовимся к экзамену по математике крамор в.с-2008 -544с518  готовимся к экзамену по математике крамор в.с-2008 -544с
518 готовимся к экзамену по математике крамор в.с-2008 -544с
 
Olimpiada Zadachi 4 5kl
Olimpiada Zadachi 4 5klOlimpiada Zadachi 4 5kl
Olimpiada Zadachi 4 5kl
 
Tr12mat91
Tr12mat91Tr12mat91
Tr12mat91
 
2044 наибольшее и наименьшее
2044 наибольшее и наименьшее2044 наибольшее и наименьшее
2044 наибольшее и наименьшее
 
Chislovye i bukvennye_vyrazheniya_2
Chislovye i bukvennye_vyrazheniya_2Chislovye i bukvennye_vyrazheniya_2
Chislovye i bukvennye_vyrazheniya_2
 
букв выражения
букв выражениябукв выражения
букв выражения
 

More from Олег Стрекаловский

Analysis day2
Analysis day2Analysis day2
Защита моей ВКР.
Защита моей ВКР.Защита моей ВКР.
Защита моей ВКР.
Олег Стрекаловский
 
Когда код «убивает», или зачем нам тестировать наши продукты
Когда код «убивает», или зачем  нам тестировать наши продуктыКогда код «убивает», или зачем  нам тестировать наши продукты
Когда код «убивает», или зачем нам тестировать наши продукты
Олег Стрекаловский
 
Разбор задач областного этапа всероссийской олимпиады школьников по информати...
Разбор задач областного этапа всероссийской олимпиады школьников по информати...Разбор задач областного этапа всероссийской олимпиады школьников по информати...
Разбор задач областного этапа всероссийской олимпиады школьников по информати...
Олег Стрекаловский
 
"Тёмная и Светлая сторона убеждения людей"
"Тёмная и Светлая сторона убеждения людей""Тёмная и Светлая сторона убеждения людей"
"Тёмная и Светлая сторона убеждения людей"
Олег Стрекаловский
 
Разбор задач областного этапа всероссийской олимпиады школьников по информати...
Разбор задач областного этапа всероссийской олимпиады школьников по информати...Разбор задач областного этапа всероссийской олимпиады школьников по информати...
Разбор задач областного этапа всероссийской олимпиады школьников по информати...Олег Стрекаловский
 

More from Олег Стрекаловский (6)

Analysis day2
Analysis day2Analysis day2
Analysis day2
 
Защита моей ВКР.
Защита моей ВКР.Защита моей ВКР.
Защита моей ВКР.
 
Когда код «убивает», или зачем нам тестировать наши продукты
Когда код «убивает», или зачем  нам тестировать наши продуктыКогда код «убивает», или зачем  нам тестировать наши продукты
Когда код «убивает», или зачем нам тестировать наши продукты
 
Разбор задач областного этапа всероссийской олимпиады школьников по информати...
Разбор задач областного этапа всероссийской олимпиады школьников по информати...Разбор задач областного этапа всероссийской олимпиады школьников по информати...
Разбор задач областного этапа всероссийской олимпиады школьников по информати...
 
"Тёмная и Светлая сторона убеждения людей"
"Тёмная и Светлая сторона убеждения людей""Тёмная и Светлая сторона убеждения людей"
"Тёмная и Светлая сторона убеждения людей"
 
Разбор задач областного этапа всероссийской олимпиады школьников по информати...
Разбор задач областного этапа всероссийской олимпиады школьников по информати...Разбор задач областного этапа всероссийской олимпиады школьников по информати...
Разбор задач областного этапа всероссийской олимпиады школьников по информати...
 

Разбор задач областного этапа всероссийской олимпиады школьников по информатике 2014г. I тур

  • 1. Всероссийская олимпиада школьников по информатике Региональный этап, I тур Разбор задач Андрианов И. А. Стрекаловский О. А. Вологодский государственный педагогический университет Факультет прикладной математики, компьютерных технологий и физики Вологда 2014 г. 1/23 Всероссийская олимпиада школьников по информатике
  • 2. Задача 1. POBEDA-2014 «POBEDA-2014» Идея решения Для того, чтобы нарисовать единичный квадрат, требуется либо по одному треугольнику типа 1 и 2, либо по одному треугольнику типа 3 и 4. Таким образом, из a1 треугольников типа 1 и a2 треугольников типа 2 можно составить не более min(a1, a2) квадратов, а из a3 треугольников типа 3 и a4 треугольников типа 4 — min(a3, a4) квадратов. 2/23 Всероссийская олимпиада школьников по информатике
  • 3. Задача 1. POBEDA-2014 Код на Pascal и С++ весьма очевиден Pascal : var a , b , c , d , n , SquareSize : int64 ; . . . n := Min (a , b) + Min ( c , d ) ; SquareSize := trunc ( s q r t (1.0 ∗ n ) ) ; C++: long long a1 , a2 , a3 , a4 ; . . . long long n = min ( a1 , a2 ) + min ( a3 , a4 ) ; long squareSize = s q r t (( long double )n ) ; 3/23 Всероссийская олимпиада школьников по информатике
  • 4. Задача 1. POBEDA-2014 Аналогичный код на Java не проходит по точности большие тесты из–за малой точности операции Math.sqrt() при больших значениях аргумента Способы решения: Проверка полученного результата методом обратного возведения в квадрат и корректировка значения, если необходимо. Применение метода Ньютона для вычисления целочисленного корня из числа.1 1 http://e-maxx.ru/algo/roots_newton#2 4/23 Всероссийская олимпиада школьников по информатике
  • 5. Задача 1. POBEDA-2014 Вопросы по задаче? 5/23 Всероссийская олимпиада школьников по информатике
  • 6. Задача 2. Список школ «Список школ» Идея решения При решении данной задачи необходимо сначала выделить номера школ из каждой записи с названием школы и сформировать массив, содержащий эти номера. Используя полученный массив, определить, количество школ и номера школ, которые встречаются в нем не более пяти раз. 6/23 Всероссийская олимпиада школьников по информатике
  • 7. Задача 2. Список школ Детали реализации на Pascal Двигаемся по строке и выделям в ней последовательность цифр, добавляя её в виде строки в массив строк с номерами школ. Отсортируем массив номеров школ в лексикографическом (алфавитном) порядке. Используя полученный массив, определяем количество школ и номера школ, которые встречаются в нем не более пяти раз последовательным проходом по нему. 7/23 Всероссийская олимпиада школьников по информатике
  • 8. Задача 2. Список школ Детали реализации на Java/C++ Упростить поиск последовательности цифр в строке можно с использованием регулярного выражения d+ (Java) Для каждого номера школы хранить количество его упоминаний в map<string, int> Вывести из map все ключи, у которых значения ≤ 5 8/23 Всероссийская олимпиада школьников по информатике
  • 9. Задача 2. Список школ Вопросы по задаче? 9/23 Всероссийская олимпиада школьников по информатике
  • 10. Задача 3. Межрегиональная олимпиада «Межрегиональная олимпиада» Идея решения Отсортируем задачи по возрастанию времени окончания их выполнения (start + time). Пусть a[i] — максимальное количество баллов, которые можно набрать, решая только задачи из числа «первых» i задач. Рассмотрим i–ю задачу. Пусть prev — это номер последней задачи, которая заканчивается не позже, чем выдается i–я задача (то есть startprev + timeprev ≤ starti, a startprev+1 + timeprev+1 > starti). Тогда a[i] = max(a[i − 1], a[prev] + cost[i]). Из этого следует, что можно либо решить задачу с номером i и какой-то набор задач с номерами не больше prev, либо не решать задачу с номером i. Ответом на поставленный вопрос будет число a[n]. 10/23 Всероссийская олимпиада школьников по информатике
  • 11. Задача 3. Межрегиональная олимпиада Детали реализации Искать задачу prev можно полным перебором за O(N), двоичным поиском за O(log N). Получение списка решаемых задач Для получения списка задач, решение которых позволит набрать сумму a[n], будем хранить дополнительный массив take, в котором укажем, какой выбор был сделан на каждом шаге. Если a[i] = cost[i] + a[prev], то take[i] := prev. Это будет означать, что решается задача с номером i, а предыдущая задача имеет номер не больше prev. В противном случае take[i]:= –1. Теперь, пройдя с конца по массиву take, можно восстановить список решаемых задач. 11/23 Всероссийская олимпиада школьников по информатике
  • 12. Задача 3. Межрегиональная олимпиада Вопросы по задаче? 12/23 Всероссийская олимпиада школьников по информатике
  • 13. Задача 4. Дом Мэра «Дом Мэра» Основная сложность задачи. . . 13/23 Всероссийская олимпиада школьников по информатике
  • 14. Задача 4. Дом Мэра «Дом Мэра» . . . разобрать все возможные случаи 13/23 Всероссийская олимпиада школьников по информатике
  • 15. Задача 4. Дом Мэра Рассмотрим подробно случай, когда дом имеет координаты xi ≥ 0, yi ≥ 0 (остальные случаи будут почти аналогичны). Рассмотрим пути, выходящие из мэрии на Север. Возможны два варианта пути: 1 Eдем на Север, затем поворачиваем направо (на Восток), и затем налево (опять на Север); при этом любой отрезок пути может иметь длину, равную 0. 2 Eдем на Север, пересекая горизонтальную улицу, на которой будет расположен дом Мэра, затем поворачиваем направо (на Восток), и затем еще раз направо (обратно на Юг). Сравнивая эти два пути, можно сказать, что если существует первый путь, то он всегда короче второго (если он существует). 14/23 Всероссийская олимпиада школьников по информатике
  • 16. Задача 4. Дом Мэра Выясним, как далеко мы сможем проехать из точки (0, 0) на Север. 1 Найдём ближайший дом, который перекрывает нам путь на Север (если такой существует). 2 Обозначим ординату (Y ) максимального удаления на Север от мэрии за R. 3 Если дом находится на отрезке (0, R), то задача решена. 15/23 Всероссийская олимпиада школьников по информатике
  • 17. Задача 4. Дом Мэра Далее выясним, как далеко мы сможем проехать из точки (xi, yi) на Юг до оси X. 1 Найдём ближайший дом, который перекрывает нам путь на Юг (если такой существует). 2 Обозначим ординату (Y ) максимального удаления на Юг от дома за S. 16/23 Всероссийская олимпиада школьников по информатике
  • 18. Задача 4. Дом Мэра Если S > R, то пути первого типа нет. Иначе попытаемся найти минимальное значение t на отрезке [S, R], т.ч. можно проехать из точки (0, t) в точку (xi, t) 17/23 Всероссийская олимпиада школьников по информатике
  • 19. Задача 4. Дом Мэра 1 Рассмотрим все здания, которые пересекаются с полосой 0 ≤ x ≤ xi. 2 Рассмотрим их проекции на ось Oy, найдем объединение этих проекций (открытых интервалов), и найдем точку t на оси Oy, не покрытую объединением интервалов. 1 Для этого можно отсортировать вместе начала и концы интервалов и пройти по этим точкам, считая баланс: «количество точек, открывающих интервалы» – «количество точек, закрывающих интервалы». 2 Если при проходе по точкам в некоторый момент мы получаем баланс = 0, то данная точка и есть искомая t. 3 Если мы нашли t, то сделаем повороты в нужные стороны в точках (0, t) и (xi, t). Иначе пути первого вида нет. 18/23 Всероссийская олимпиада школьников по информатике
  • 20. Задача 4. Дом Мэра Путь второго вида: Eдем на Север, пересекая горизонтальную улицу, на которой будет расположен дом Мэра, затем поворачиваем направо (на Восток), и затем еще раз направо (обратно на Юг). Если R ≤ yi, то пути второго вида также нет. 19/23 Всероссийская олимпиада школьников по информатике
  • 21. Задача 4. Дом Мэра Далее выясним, как далеко мы сможем проехать из точки (xi, yi) на Север. 1 Найдём ближайший дом, который перекрывает нам путь на Север (если такой существует). 2 Обозначим ординату (Y ) максимального удаления на Север от дома за S. 20/23 Всероссийская олимпиада школьников по информатике
  • 22. Задача 4. Дом Мэра 1 Рассмотрим отрезок [yi, min(R, S)] и найдем на нём минимальную точку t, не покрытую объединением проекций интервалов, рассмотренным выше. 2 Если такая точка t существует, то из всех путей, выходящих из точки (0, 0) на Север, кратчайший путь имеет повороты в точках (0, t) и (xi, t). В противном случае таких путей нет. 3 Заметим, что если t = yi, то второй поворот не нужен. 21/23 Всероссийская олимпиада школьников по информатике
  • 23. Задача 4. Дом Мэра Вопросы по задаче? 22/23 Всероссийская олимпиада школьников по информатике
  • 24. Заключение Спасибо за внимание! 23/23 Всероссийская олимпиада школьников по информатике