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

Разбор задач

Embed Size (px)

DESCRIPTION

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

Citation preview

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

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

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

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

Задача А. Кольцо

Условие

Заданы площадь кольца и радиус внешней окружности. Требуется определить радиус внутренней окружности.

Ограничение

R < 101

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

Задача А. Кольцо

Решение

Из условия получаем, что

S = πR2 – πr2

Выражаем r = sqrt(R2-S/π).

Где π = 3.1415. Такой точности будет достаточно, так как R < 101.

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

Задача В. Числа без одинаковых цифр

Условие

Найти N-ое по счёту число без одинаковых цифр.

Ограничение

N < 104 + 1

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

Задача В. Числа без одинаковых цифр

Решение

Учитывая серьёзные ограничения на N, будем перебирать числа в порядке возрастания и для каждого из них смотреть из каких цифр оно состоит.

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

Задача В. Числа без одинаковых цифр

Решение

Проверять из каких цифр состоит число можно в цикле, деля его на 10.

while (a)

if (++m[a%10] > 1) return false;

else a /= 10;

return true;

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

Задача В. Числа без одинаковых цифр

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

Функция проверки работает за O(lg a), а если быть точным, то не более 6 шагов.

Пробный запуск показывает, что для N = 104 ответ равен 26057.

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

Задача С. Котлеты

Условие

Требуется поджарить N котлет с обеих сторон, но умещается только K. Какое наименьшее время потребуется?

Ограничение

N < 30001

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

Задача С. Котлеты

Решение

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

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

Задача С. Котлеты

1. Жарим по K котлет с одной стороны, это займёт T = N / K операций,

2. Жарим остальные котлеты с одной стороны, заполняя сковороду максимально возможным количеством уже прожаренных. Это ещё одна операция,

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

Задача С. Котлеты

3. Осталось R = N – min(T * K, K – N % K) котлет, прожаренных с одной стороны. С ними можно справиться за (R + K – 1) / K операций,

4. Суммируем, умножаем на М и выводим.

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

Задача D. Губернатор

Условие

Для N зданий известны эффективность и расходы на содержание. Определить оптимальный порядок постройки зданий.

Ограничение

N < 104 + 1

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

Задача D. Губернатор

Анализ взаимного расположения

Рассмотрим строительство двух зданий в различном порядке:

(Ka1 – b

1)a

2 – b

2 = Ka

1a

2 – b

1a

2 – b

2

(Ka2 – b

2)a

1 – b

1 = Ka

1a

2 – b

2a

1 – b

1

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

Задача D. Губернатор

Решение

Первый план более предпочтителен, если b

1a

1 + b

2 < b

2a

1 + b

1.

Упорядочим здания по этому критерию. Так как N до 104 нам понадобится быстрая сортировка.

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

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

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