XVIII Командная олимпиада школьников СанктПетербурга по информатике и программированию. Разбор задач презентация
Содержание
- 2. Задача A Бактерии
- 3. Автор задачи – Михаил Дворкин Условие – Михаил Дворкин Подготовка тестов – Сергей Мельников Разбор –
- 4. Постановка задачи Дано целое число n За один шаг можно: Разделить n на любой его простой
- 5. Идея решения Определить, возможно ли получить m Разложить m на простые делители Если хотя бы один
- 6. Нахождение решения Рассмотреть задачу с конца ― получить из m число n, если разрешены операции: Извлечь
- 7. Решение Разложить оба числа на простые множители Пока существует простой делитель, который входит в m в
- 8. Почему это работает? Единственный способ уменьшить показатель простого делителя ― извлечение корня, которое возможно лишь при
- 9. Задача B Шахматная головоломка
- 10. Автор задачи – Виталий Аксенов Условие – Сергей Поромов Подготовка тестов – Владимир Ульянцев Разбор –
- 11. Условие задачи Дано расположение коня на доске Требуется поставить ладью и слона на доску, чтобы они
- 12. Как решать? Если слон или ладья бьют коня, то конь их не бьет Позиций на доске
- 13. Интересные клетки Ладья бьет все поля в том же столбце или строке Слон бьет все поля
- 14. Задача C Шоколад
- 15. Автор задачи – Виталий Аксенов Условие – Антон Ахи Подготовка тестов – Нияз Нигматуллин Разбор –
- 16. О чем задача?
- 17. Как решать? Перебрать всевозможные вертикальные и горизонтальные разрезы Проверить, можно ли хоть один из них провести:
- 18. Задача D Луна
- 19. Автор задачи – Юрий Петров Условие – Юрий Петров Подготовка тестов – Владимир Ульянцев Разбор –
- 20. О чем задача? Необходимо найти луну на фотографии
- 21. Как решать? Ограничения небольшие – можно и достаточно проверить всевозможные положения и размеры луны, выбрать наибольший
- 22. Как проверить луну? Проверить, что все точки фотографии на расстоянии не более радиуса от центра луны
- 23. Задача E Ожерелье
- 24. Автор задачи – Михаил Дворкин Условие – Сергей Поромов Подготовка тестов – Нияз Нигматуллин Разбор –
- 25. Как решать? Ожерелий из двух, трех, четырех и пяти жемчужин нет Для остальных возьмем ожерелье 1
- 26. Альтернативное решение Генерируем случайное ожерелье Проверяем, есть ли ось симметрии
- 27. Задача F Гонки
- 28. Автор задачи – жюри олимпиады Условие – Антон Банных Подготовка тестов – Виталик Аксенов Разбор –
- 29. За какое время проедет машина? Проедет x div (tv) целых сегментов длинной tv, сделает между ними
- 30. Как решать? Время для одной машины x / v + (ceil(x / (tv)) – 1) *
- 31. Задача G Робот
- 32. Автор задачи – Михаил Дворкин Условие – Михаил Дворкин Подготовка тестов – Алексей Цыпленков Разбор –
- 33. О чем задача Робот переместился из начала координат в точку A(x, y), при этом робот поворачивал
- 34. Как решать? Длина каждого отрезка пути не меньше 1 и не больше 106 Для каждого направления
- 35. Пусть робот попадет в точку B, если всегда будет смещаться на 1 Чтобы попасть из В
- 36. Если все направления, коэффициенты при которых не равны 0, были найдены в пути робота, то ответ
- 37. Если какого-то направления с ненулевым k нет в пути, то ответа не существует А B
- 38. Задача H Санта
- 39. Автор задачи – Виталий Аксенов Условие – Сергей Мельников Подготовка тестов – Алексей Цыпленков Разбор –
- 40. О чем задача Даны два списка из K и М натуральных чисел, каждое не больше N.
- 41. Как решать? Так как каждое число встречается в списках не более одного раза, то количество чисел,
- 42. Задача I. Подстрока
- 43. Автор задачи – Антон Банных Условие – Антон Банных Подготовка тестов – Антон Банных Разбор –
- 44. Решение Ахо-Корасик Строка abc Запросы: 2 3 bc 2 3 abc
- 45. Решение Для каждого префикса строки запишем, в какой вершине автомата мы оказались а – 3 ab
- 46. Решение Рассмотрим дерево, образованное суффиксными ссылками
- 47. Решение Для каждого запроса нужно определить, встречалась ли вершина из соответствующего поддерева в отрезке
- 48. Решение Перенумеруем вершины в порядке выхода из обхода в глубину
- 49. Вершины одного поддерева имеют последовательные номера Пусть пара (префикс, номер вершины) — точка Запрос — есть
- 50. Решение Двумерное дерево отрезков — O(n log n) Одномерное дерево отрезков на сумму События: Начало прямоугольника
- 51. Задача I. Подстрока
- 52. Автор задачи – Антон Банных Условие – Антон Банных Подготовка тестов – Антон Банных Разбор –
- 53. Как решать? Ахо-Корасик Суффиксный массив Суффиксное дерево Суффиксный автомат
- 54. Ахо-Корасик Строка abc Запросы: 2 3 bc 2 3 abc
- 55. Решение Для каждого префикса строки запишем, в какой вершине автомата мы оказались а – 3 ab
- 56. Идея решения Рассмотрим дерево, образованное суффиксными ссылками
- 57. Задача Запрос: l, r, длина строки len Строке соответствует вершина x Определить, встречалась ли вершина из
- 58. Решение Перенумеруем вершины в порядке выхода из обхода в глубину
- 59. Решение Вершины одного поддерева имеют последовательные номера Пусть пара (префикс, номер вершины) – точка Запрос –
- 60. Решение
- 61. Решение Двумерное дерево отрезков: O(n log2 n) Одномерное дерево отрезков на сумму События: Начало прямоугольника Конец
- 62. Асимптотика Ахо-Корасик: O(n) Перенумерация вершин: O(n) Обработка запросов: O(n log n)
- 63. Задача J Вода
- 64. Автор задачи – Виталий Аксенов Условие – Антон Ахи Подготовка тестов – Антон Ахи Разбор –
- 65. Как решать? Поддерживаем текущий уровень воды Поддерживаем суммарную скорость вытекания воды Обрабатываем события
- 66. События Уровень воды достиг очередного отверстия Запрос на уровень воды Появление новой течи Устранение течи
- 67. Решение Определяем ближайшее событие Вычисляем уровень воды к моменту наступления события Обрабатываем событие
- 68. Реализация Выделим «интересные высоты» ─ те, которые встречаются в запросах Храним скорость вытекания воды через отверстия
- 69. Реализация Появление и починка течи ─ изменение соответствующего элемента массива и суммарной скорости вытекания Запрос на
- 70. Асимптотика Выделение «интересных высот» сортировка: O(n log n) хеш-таблица: O(n) Обработка событий: O(n) Итого: O(n) или
- 72. Скачать презентацию