12
Разбор задач 3 тура школьного этапа Кормышов Михаил http://krasprog.ru

Разбор задач

Embed Size (px)

DESCRIPTION

Третий тур школьного этапа Всероссийской олимпиады школьников по информатике 2012

Citation preview

Page 1: Разбор задач

Разбор задач3 тура школьного этапа

Кормышов Михаил http://krasprog.ru

Page 2: Разбор задач

Задача А. Время года

Условие

Дан номер месяца, определить время года.

Ограничение

N < 101

Page 3: Разбор задач

Задача А. Время года

Решение

Для решения задачи достаточно воспользоваться оператором ветвления if.

Page 4: Разбор задач

Задача В. Футбол

Условие

Дана сумма чисел после каждого изменения счёта в матче. Найти количество забитых мячей.

Ограничение

S < 103 + 1

Page 5: Разбор задач

Задача В. Футбол

Наблюдение

Очевидно, что после каждого забитого мяча, сумма счёта увеличивается на 1: 1+0=1, 1+1=2, 1+2=3, 2+2=4, 2+3=5.

Таким образом мы имеем дело с арифметической прогрессией.

Page 6: Разбор задач

Задача В. Футбол

Решение

Сумма арифметической прогрессии равна:

S = (1 + n) * n / 2

Откуда n = (sqrt(1 + 8S) – 1) / 2

Page 7: Разбор задач

Задача С. Игра с пешкой

Условие

Двое играют на квадратной доске. Определить гарантированный выигрыш первого игрока.

Ограничение

N < 101

Page 8: Разбор задач

Задача С. Игра с пешкой

Идея решения

Воспользуемся динамическим программированием. Будем вести подсчёты, начиная с последнего хода.

Если ход из mi,j совершает второй

игрок, то он выберет клетку со значением равным min(m

i+1,j, m

i,j-1).

Если первый, то – максимум.

Page 9: Разбор задач

Задача С. Игра с пешкой

Продолжение

Определять очерёдность хода можно по чётности суммы номеров столбца и строки текущей клетки.

Время работы алгоритма O(N2).

Page 10: Разбор задач

Задача D. Доказательство теоремы

Условие

Дано дерево. Надо выбрать минимальное множество вершин (включая первую), чтобы у каждой выбранной вершины выбранными было не меньше половины потомков.

Ограничение

N < 104 + 1

Page 11: Разбор задач

Задача D. Доказательство теоремы

Решение

Применим к графу топологическую сортировку и будем рассматривать вершины в этом порядке.

Тогда, при рассмотрении вершины i, все её потомки будут уже рассмотрены. А значит не трудно составить из них список с минимальной суммой.

Page 12: Разбор задач

Спасибо за внимание

Ваши вопросы?