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

Содержание

Слайд 2

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

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

Слайд 3

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

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

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

Мельников
Слайд 4

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

Общая идея

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

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

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

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

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

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

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

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

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

Ребро

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

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

Слайд 7

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

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

Три сыра
p1=1 r1=2 d1=2
p2=3 r2=1 d2=4
p3=2 r3=2

d3=4
Две мыши
Слайд 8

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

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

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

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

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

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

Раньше было

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

Kj,k – одни и те же

разных i и одного Ik
Слайд 10

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

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

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

Слайд 11

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

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

Слайд 12

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

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

Слайд 13

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

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

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

Ахи
Слайд 14

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

О чем задача?

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

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

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

Как решать?

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

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

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

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

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

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

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

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

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

один раз
Слайд 18

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

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

Слайд 19

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

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

Слайд 20

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

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

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

Банных
Разбор — Антон Банных
Слайд 21

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

О чем задача?

Придумать 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

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


Слайд 29

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

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

Слайд 30

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

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

Слайд 31

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

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

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

Банных
Слайд 32

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

О чем задача?

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

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

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

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

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

нагрузкой.
Наиболее мощные приборы имеет смысл ставить ближе к розетке.
Слайд 34

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

Решение

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

с фильтра, подключенного к розетке.
Слайд 35

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

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

Слайд 36

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

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

Слайд 37

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

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

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

Мельников
Слайд 38

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

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

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

исходных окружностей
Слайд 39

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

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

Для любой точки С на перпендикуляре восстановленном в точке 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 кварталов.
Каждые t минут навигатор сообщает точку, где находится объект, с точностью до d кварталов.
Где может находиться объект в данный момент времени?
Слайд 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,

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

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

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

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

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

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

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

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

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

Слайд 64

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

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

Слайд 65

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

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

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

Мельников
Слайд 66

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

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

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

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

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

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

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

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

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

4k вершин

4 вершины

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

полные графы, 1 и 4 – на пустые
Слайд 69

12 вершин

12 вершин

Слайд 70

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

4k + 1 вершина

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

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

5 вершин

Слайд 71

13 вершин

13 вершин

Слайд 72

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

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

Слайд 73

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

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

Слайд 74

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

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

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

Петров
Слайд 75

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

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

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

Слайд 76

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

Идея решения

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

Слайд 77

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Слайд 81

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

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

Слайд 82

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

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

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

Ахи
Слайд 83

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

О чем задача?

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

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

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

Как решать?

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

не изменяет красоту таблицы результатов
У количества задач на соревновании не может быть более 24 подряд идущих делителей, так как минимальное число, которое делится на все числа от 1 до 24 это ― 5354228880
Имя файла: Десятая-Всероссийская-командная-олимпиада-школьников-по-программированию.pptx
Количество просмотров: 17
Количество скачиваний: 0