Десятая Всероссийская командная олимпиада школьников по программированию презентация

Содержание

Слайд 2

Задача A. Поедание сыра

Задача A. Поедание сыра

Слайд 3

Авторы задачи

Автор задачи — Сергей Мельников
Условие — Андрей Станкевич
Подготовка тестов — Антон Ахи
Разбор — Сергей Мельников

Авторы задачи Автор задачи — Сергей Мельников Условие — Андрей Станкевич Подготовка тестов

Слайд 4

Общая идея

Используем двоичный поиск по ответу
Дано t, можно ли организовать поедание сыра, чтобы

мыши не ели сыр более чем через t часов, после того как сыр начал портится
Обозначим Di = di + t

Общая идея Используем двоичный поиск по ответу Дано t, можно ли организовать поедание

Слайд 5

Интересные интервалы

Пусть Ti – все моменты времени ri и Di
T1 < T2 <

… < Tn
Время разбивается на интервалы [Ti, Ti+1]
Сыр или можно есть в течение всего интервала, или нельзя

Интересные интервалы Пусть Ti – все моменты времени ri и Di T1 Время

Слайд 6

Скорости всех мышей равны 1

Рассмотрим сеть
В ней надо найти максимальный поток

Ребро из cыра

i в интервал k, если этот сыр можно есть в этот интервал

Можно, если все рёбра из s насыщены

Скорости всех мышей равны 1 Рассмотрим сеть В ней надо найти максимальный поток

Слайд 7

Скорости всех мышей равны 1

Три сыра
p1=1 r1=2 d1=2
p2=3 r2=1 d2=4
p3=2 r3=2 d3=4
Две мыши

Скорости всех мышей равны 1 Три сыра p1=1 r1=2 d1=2 p2=3 r2=1 d2=4

Слайд 8

Разные скорости мышей

Упорядочим мышей по неубыванию скоростей:
s1 ≥ s2 ≥ … ≥ sm


Представим (m-1)-ю мышь, как набор из мыши со скоростью sm, и мыши со скоростью sm-1-sm
Аналогично разобьем (m-2)-ю мышь на 3 три мыши: sm, sm-1-sm и sm-2-sm-1
И так далее

Разные скорости мышей Упорядочим мышей по неубыванию скоростей: s1 ≥ s2 ≥ …

Слайд 9

Модификация сети

Раньше было

Заменим, на такой фрагмент

Kj,k – одни и те же разных i

и одного Ik

Модификация сети Раньше было Заменим, на такой фрагмент Kj,k – одни и те

Слайд 10

Общее решение

Двоичный поиск
Поток в специальной сети

Общее решение Двоичный поиск Поток в специальной сети

Слайд 11

Спасибо за внимание! Вопросы по задаче A?

Спасибо за внимание! Вопросы по задаче A?

Слайд 12

Задача B. Соревнования по программированию

Задача B. Соревнования по программированию

Слайд 13

Авторы задачи

Автор задачи — Владимир Ульянцев
Условие — Федор Царев
Подготовка тестов — Антон Ахи
Разбор — Антон Ахи

Авторы задачи Автор задачи — Владимир Ульянцев Условие — Федор Царев Подготовка тестов

Слайд 14

О чем задача?

Дан список файлов и определения для каталогов с тестами, задач и

описаний соревнований
Необходимо посчитать количество описаний соревнаваний

О чем задача? Дан список файлов и определения для каталогов с тестами, задач

Слайд 15

Как решать?

Востановить полностью дерево каталогов и файлов
Использовать символ «\» как разделитель имен в

путях
Для каждого каталога хранить список подкаталогов и файлов в нем, например с помощью хеш-таблицы

Как решать? Востановить полностью дерево каталогов и файлов Использовать символ «\» как разделитель

Слайд 16

Как посчитать количество описаний соревнований?

В получившемся дереве файлов/каталогов проверить про каждый каталог, является

ли он каталогом с тестами, задачей или описанием соревнований
Не зыбыть, что в каталоге с тестами могут быть подкаталоги

Как посчитать количество описаний соревнований? В получившемся дереве файлов/каталогов проверить про каждый каталог,

Слайд 17

Сколько работает?

Во входном файле задано не более 100000 файлов/каталогов
Каждый каталог просматривается один раз

Сколько работает? Во входном файле задано не более 100000 файлов/каталогов Каждый каталог просматривается один раз

Слайд 18

Спасибо за внимание! Вопросы по задаче B?

Спасибо за внимание! Вопросы по задаче B?

Слайд 19

Задача C. Распил

Задача C. Распил

Слайд 20

Авторы задачи

Авторы задачи — Елена Андреева, Владимир Гуровиц
Условие — Андрей Станкевич
Подготовка тестов — Антон Банных
Разбор — Антон

Банных

Авторы задачи Авторы задачи — Елена Андреева, Владимир Гуровиц Условие — Андрей Станкевич

Слайд 21

О чем задача?

Придумать n-угольник, который можно распилить на k-угольник и m-угольник разрезом, проходящим

через две его вершины.

О чем задача? Придумать n-угольник, который можно распилить на k-угольник и m-угольник разрезом,

Слайд 22

Какие n, m, k допустимы?

Если , решения нет.
Иначе при достаточно больших n,

m, k искомый многоугольник существует.

Какие n, m, k допустимы? Если , решения нет. Иначе при достаточно больших

Слайд 23

m + k = n

m + k = n

Слайд 24

m + k = n + 1

m + k = n + 1

Слайд 25

m + k = n + 2

m + k = n + 2

Слайд 26

m + k = n + 3

m + k = n + 3

Слайд 27

m + k = n + 4

m + k = n + 4

Слайд 28

m + k = n + 4, k < 5 Дополнительный случай

m + k = n + 4, k

Слайд 29

Спасибо за внимание! Вопросы по задаче C?

Спасибо за внимание! Вопросы по задаче C?

Слайд 30

Задача D. Электричество

Задача D. Электричество

Слайд 31

Авторы задачи

Автор задачи — Владимир Гуровиц
Условие — Федор Царев
Подготовка тестов — Сергей Поромов
Разбор — Антон Банных

Авторы задачи Автор задачи — Владимир Гуровиц Условие — Федор Царев Подготовка тестов

Слайд 32

О чем задача?

В наличии:
k сетевых фильтров
n элетроприборов
1 розетка
Требуется подсоединить все элетроприборы так, чтобы

потребляемая ими мощность не превышала допустимую для сетевого фильтра.
К сетевому фильтру можно подсоединить не более одного сетевого фильтра.

О чем задача? В наличии: k сетевых фильтров n элетроприборов 1 розетка Требуется

Слайд 33

Основные идеи

Не имеет смысла поключать фильтр к фильтру с меньшей максимальной нагрузкой.
Наиболее мощные

приборы имеет смысл ставить ближе к розетке.

Основные идеи Не имеет смысла поключать фильтр к фильтру с меньшей максимальной нагрузкой.

Слайд 34

Решение

Отсортировать электроприборы и фильтры в порядке невозрастания мощностей.
Строить ответ жадно, начиная с фильтра,

подключенного к розетке.

Решение Отсортировать электроприборы и фильтры в порядке невозрастания мощностей. Строить ответ жадно, начиная

Слайд 35

Спасибо за внимание! Вопросы по задаче D?

Спасибо за внимание! Вопросы по задаче D?

Слайд 36

Задача E. Адронные коллайдеры

Задача E. Адронные коллайдеры

Слайд 37

Авторы задачи

Автор задачи — Михаил Кевер
Условие — Федор Царев
Подготовка тестов — Сергей Поромов
Разбор — Сергей Мельников

Авторы задачи Автор задачи — Михаил Кевер Условие — Федор Царев Подготовка тестов

Слайд 38

Две окружности

Две окружности: найдем окружность с центром на прямой, соединяющей центры исходных окружностей

Две окружности Две окружности: найдем окружность с центром на прямой, соединяющей центры исходных окружностей

Слайд 39

Две окружности

Для любой точки С на перпендикуляре восстановленном в точке D – существует

окружность являющаяся решением

Две окружности Для любой точки С на перпендикуляре восстановленном в точке D –

Слайд 40

Три окружности

Три окружности:
Построим прямую на которой может быть центр окружности делящей пополам O1

и O2
Построим прямую на которой может быть центр окружности делящей пополам O2 и O3
Найдем их точку пересечения - X

Три окружности Три окружности: Построим прямую на которой может быть центр окружности делящей

Слайд 41

Три окружности

Три окружности

Слайд 42

Спасибо за внимание! Вопросы по задаче E?

Спасибо за внимание! Вопросы по задаче E?

Слайд 43

Задача F. Космические захватчики

Задача F. Космические захватчики

Слайд 44

Авторы задачи

Автор задачи — Георгий Корнеев
Условие — Павел Маврин
Подготовка тестов — Антон Банных
Разбор — Антон Ахи

Авторы задачи Автор задачи — Георгий Корнеев Условие — Павел Маврин Подготовка тестов

Слайд 45

О чем задача?

В столбцах находятся ai захватчиков
Пушка за одно действие либо перемещается в

соседний столбец, либо производит выстрел и убивает одного захватчика
Необходимо уничтожить всех захватчиков за минимальное количество действий

О чем задача? В столбцах находятся ai захватчиков Пушка за одно действие либо

Слайд 46

Частный случай

Если пушка стоит в крайнем столбце, то нужно уничтожить всех захватчиков

в этом столбце и перейти к следующему
Ответ — сумма общего количества захватчиков и количества перемещений, то есть Σai+(n-1)

Частный случай Если пушка стоит в крайнем столбце, то нужно уничтожить всех захватчиков

Слайд 47

Решение

Дойти до ближайшего из краев, далее действовать по предыдущему плану
Ответ — Σai+(n-1)+min(p-1,n-p)

Решение Дойти до ближайшего из краев, далее действовать по предыдущему плану Ответ — Σai+(n-1)+min(p-1,n-p)

Слайд 48

Спасибо за внимание! Вопросы по задаче F?

Спасибо за внимание! Вопросы по задаче F?

Слайд 49

Задача G. Пробежки по Манхэттену

Задача G. Пробежки по Манхэттену

Слайд 50

Авторы задачи

Автор задачи — Михаил Дворкин
Условие — Павел Маврин
Подготовка тестов — Олег Давыдов
Разбор — Михаил Дворкин

Авторы задачи Автор задачи — Михаил Дворкин Условие — Павел Маврин Подготовка тестов

Слайд 51

О чем задача?

Объект передвигается по Манхэттену, пробегая за t минут не более чем

t кварталов.
Каждые t минут навигатор сообщает точку, где находится объект, с точностью до d кварталов.
Где может находиться объект в данный момент времени?

О чем задача? Объект передвигается по Манхэттену, пробегая за t минут не более

Слайд 52

Утверждение

В каждый момент времени множество точек, в которых может находиться объект, составляют прямоугольник,

стороны которого повернуты на 45° относительно осей координат.

Утверждение В каждый момент времени множество точек, в которых может находиться объект, составляют

Слайд 53

В начальный момент времени

Это точка (0, 0) — вырожденный прямоугольник.

В начальный момент времени Это точка (0, 0) — вырожденный прямоугольник.

Слайд 54

За t минут…

Объект может пройти не более t кварталов.
Прямоугольник «расширяется во все стороны

на t»

За t минут… Объект может пройти не более t кварталов. Прямоугольник «расширяется во

Слайд 55

Данные от навигатора…

Сообщают, в каком квадрате может находиться объект.
Пересечем прямоугольник и квадрат (с параллельными

осями) — получим новый прямоугольник.

Данные от навигатора… Сообщают, в каком квадрате может находиться объект. Пересечем прямоугольник и

Слайд 56

Спасибо за внимание! Вопросы по задаче G?

Спасибо за внимание! Вопросы по задаче G?

Слайд 57

Задача H. Следующее разбиение на слагаемые

Задача H. Следующее разбиение на слагаемые

Слайд 58

Авторы задачи

Автор задачи — Андрей Станкевич
Условие — Андрей Станкевич
Подготовка тестов — Сергей Мельников
Разбор — Сергей Мельников

Авторы задачи Автор задачи — Андрей Станкевич Условие — Андрей Станкевич Подготовка тестов

Слайд 59

Генерация следующего комбинаторного объекта

Дано разбиение
5=1+1+3
Идём с конца, пока нельзя увеличить слагаемое
Увеличим слагаемое на

минимальную величину
Допишем минимальный «хвост»

Генерация следующего комбинаторного объекта Дано разбиение 5=1+1+3 Идём с конца, пока нельзя увеличить

Слайд 60

Когда можно увеличить слагаемое?

Первое слагаемое с конца нельзя увеличить
Второе слагаемое с конца можно

увеличить
Например можно прибавить к нему последнее слагаемое
5=1+1+3 → 5=1+4

Когда можно увеличить слагаемое? Первое слагаемое с конца нельзя увеличить Второе слагаемое с

Слайд 61

На сколько можно увеличить слагаемое?

Слагаемое можно увеличить на 1, если оно было меньше

последнего хотя бы на 2
5=1+1+3 → 5=1+2+2
Иначе его надо увеличить на величину последнего слагаемого
5=1+2+2 → 5=1+4

На сколько можно увеличить слагаемое? Слагаемое можно увеличить на 1, если оно было

Слайд 62

Минимальный «хвост»?

Надо вывести хвост с суммой S, при этом последнее слагаемое которое было

выведено перед ним равно K
Выведем несколько(возможно ноль) слагаемых K, а затем остаток
Остаток должен быть не меньше чем K

Минимальный «хвост»? Надо вывести хвост с суммой S, при этом последнее слагаемое которое

Слайд 63

Спасибо за внимание! Вопросы по задаче H?

Спасибо за внимание! Вопросы по задаче H?

Слайд 64

Задача I. Самодвойственный документ

Задача I. Самодвойственный документ

Слайд 65

Авторы задачи

Автор задачи — Сергей Мельников
Условие — Андрей Станкевич
Подготовка тестов — Сергей Мельников
Разбор — Сергей Мельников

Авторы задачи Автор задачи — Сергей Мельников Условие — Андрей Станкевич Подготовка тестов

Слайд 66

Условие задачи

В задаче надо построить граф из n вершин
Первый отдел: пары чисел –

это ребра графа
Второй отдел: пары чисел – это вершины между которыми ребра нет
Граф изоморфен своему дополнению

Условие задачи В задаче надо построить граф из n вершин Первый отдел: пары

Слайд 67

Когда ответ существует?

В полном графе из n вершин n(n - 1)/2 ребер
Если n

= 4k + 2 или n = 4k + 3, то ребер нечетное число – ответ «No»
Если n = 4k или n = 4k + 1, то ответ «Yes»

Когда ответ существует? В полном графе из n вершин n(n - 1)/2 ребер

Слайд 68

4k вершин

4 вершины

4k вершин – заменить вершины 2 и 3 на полные графы,

1 и 4 – на пустые

4k вершин 4 вершины 4k вершин – заменить вершины 2 и 3 на

Слайд 69

12 вершин

12 вершин

Слайд 70

4k + 1 вершина

4k+1 вершина – заменить вершины 2 и 3 на полные

графы, 1 и 4 – на пустые

5 вершин

4k + 1 вершина 4k+1 вершина – заменить вершины 2 и 3 на

Слайд 71

13 вершин

13 вершин

Слайд 72

Спасибо за внимание! Вопросы по задаче I?

Спасибо за внимание! Вопросы по задаче I?

Слайд 73

Задача J. Цирковое шоу

Задача J. Цирковое шоу

Слайд 74

Авторы задачи

Автор задачи — Юрий Петров
Условие — Павел Маврин
Подготовка тестов — Юрий Петров
Разбор — Юрий Петров

Авторы задачи Автор задачи — Юрий Петров Условие — Павел Маврин Подготовка тестов

Слайд 75

Формулировка

Дан набор отрезков
Выбрать два поднабора, объединения которых не пересекаются
Максимизировать минимум размеров

Формулировка Дан набор отрезков Выбрать два поднабора, объединения которых не пересекаются Максимизировать минимум размеров

Слайд 76

Идея решения

Динамическое программирование

Идея решения Динамическое программирование

Слайд 77

Решение: вычисляемая функция

Функция f(a, n, t):
a — самый правый из отрезков, взятых в один

из наборов
n — текущее количество отрезков в первом наборе
t — какому набору принадлежит отрезок a
Значение — максимальное количество отрезков во втором наборе

Решение: вычисляемая функция Функция f(a, n, t): a — самый правый из отрезков,

Слайд 78

Решение: переходы

Перебрать отрезок b, который будет завершать следующую группу
Перебрать набор, в который взять

эту группу
Все отрезки, лежащие правее конца a и левее конца b, выгодно взять в тот же набор

Решение: переходы Перебрать отрезок b, который будет завершать следующую группу Перебрать набор, в

Слайд 79

Оценка времени работы

Всего есть n×n×2 состояний
Из каждого O(n) переходов
Переходы перебирать в порядке возрастания

конца отрезка
Суммарное время обработки переходов из одного состояния O(n)
Итоговое время O(n3)

Оценка времени работы Всего есть n×n×2 состояний Из каждого O(n) переходов Переходы перебирать

Слайд 80

Спасибо за внимание! Вопросы по задаче J?

Спасибо за внимание! Вопросы по задаче J?

Слайд 81

Задача K. Красивая таблица результатов

Задача K. Красивая таблица результатов

Слайд 82

Авторы задачи

Автор задачи — Владимир Ульнцев
Условие — Андрей Станкевич
Подготовка тестов — Владимир Ульянцев
Разбор — Антон Ахи

Авторы задачи Автор задачи — Владимир Ульнцев Условие — Андрей Станкевич Подготовка тестов

Слайд 83

О чем задача?

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

либо 0, либо делитель числа задач на соревновании
Сколько еще можно сдать задач, чтобы таблица не переставала быть красивой

О чем задача? Таблица результатов считается красивой, если количество задач, решенных каждой из

Слайд 84

Как решать?

Для каждой команды увеличивать количество сданных ею задач, пока это не изменяет

красоту таблицы результатов
У количества задач на соревновании не может быть более 24 подряд идущих делителей, так как минимальное число, которое делится на все числа от 1 до 24 это ― 5354228880

Как решать? Для каждой команды увеличивать количество сданных ею задач, пока это не

Имя файла: Десятая-Всероссийская-командная-олимпиада-школьников-по-программированию.pptx
Количество просмотров: 13
Количество скачиваний: 0