Разбор задач олимпиады ФПМИ 2010 года (Лига B) презентация

Содержание

Статистика решения задач

Слайд 1Разбор задач олимпиады ФПМИ 2010 года (Лига B)
© 2010, Serge Kashkevich


Слайд 2Статистика решения задач


Слайд 3Числа-палиндромы
Автор задачи – С.И. Кашкевич
Задача впервые была предложена на чемпионате Гродненского

университета в 2010 году.

Для решения задачи необходимо:
вычислить сумму двух чисел;
выделить все цифры суммы в строку;
проверить, является ли полученная строка палиндромом

Слайд 4Скобочная последовательность
Задача была предложена на интернет-олимпиаде ИТМО 23 сентября 2006 года

Задача

сводится к проверке правильности скобочной последовательности с использованием стека.
Исходную строку «склеиваем» саму с собой, и далее рассматриваем все подстроки длины N, начинающиеся с открывающей скобки.
Если хотя бы одна из подстрок является правильной скобочной последовательностью – выводим ответ “Yes”, иначе – “No”.

Слайд 5Скобочная последовательность
Алгоритм проверки правильности скобочной последовательности с использованием стека.

for i

:= 1 to N do begin
if (Si – открывающая скобка) then
заносим Si в стек
else begin
извлекаем из стека символ T;
if (стек пуст) or
(типы скобок T и Si различаются) then
скобки расставлены неверно;
end;
end;
if (стек пуст) then
скобки расставлены верно
else
скобки расставлены неверно;

Слайд 6Буква А
Автор задачи – С.И. Кашкевич
Задача впервые была предложена на чемпионате

Гродненского университета в 2010 году.

Задача решается перебором всех троек отрезков. (Естественно, если N<3, ответом будет 0.) Для каждой тройки:
определяем «ножки» - непараллельные отрезки, пересекающиеся в концах;
проверяем, является ли третий отрезок правильной «перекладиной»
Для решения задачи необходимо уметь определять взаимное расположение двух отрезков.

Слайд 7Алхимия
Задача была предложена на интернет-олимпиаде ИТМО 23 сентября 2006 года

Строим ориентированный

граф, вершинами которого являются вещества, а дуга проходит из вершины A в вершину B, если можно превратить вещество A в вещество B.
В полученном графе ищем кратчайший путь из начальной в конечную вершину методом поиска в ширину.
Особенностью задачи является то, что начальное и конечное вещество могут отсутствовать в списке веществ, упомянутых в алхимических реакциях.

Слайд 8Золотая середина
Автор задачи – С.И. Кашкевич

Задача, которую, по идее, должны решить

все. Приведём авторское решение:

ab := (a bc := (b ac := (a
if ab and bc then d := b; {a if (not ab) and (not bc) then d := b; {c if ab and (not ac) then d := a; {c if (not ab) and ac then d := a; {b if (not bc) and ac then d := c; {a if bc and (not ac) then d := c; {a

Слайд 9Округление
Автор задачи – С.И. Кашкевич

Относительно простая по условию задача требует аккуратного

разбора большого количества случаев:
N <= количества разрядов в целой части (результат – ‘0’);
N <= 0 (выводить или нет десятичную точку);
N < 0 (добавлять ли нули в целой части);
перенос единицы из дробной части в целую
и т. д.




Слайд 10Галлеоны, сикли и кнаты
Автор задачи – С.И. Кашкевич

Переведём все денежные величины

в кнаты. Это даёт возможность проводить все вычисления в целых числах без промежуточных переводов. После выполнения вычислений переведём количество кнатов, оставшихся у Гарри Поттера, в требуемый формат.



Слайд 11Шаблоны
Задача была предложена на интернет-олимпиаде ИТМО 23 сентября 2006 года

Задача требует

умения работать с битовыми масками.
Заведём различные битовые маски для каждого символа, входящего в шаблон:

Слайд 12Шаблоны
Для соответствующих символов обоих шаблонов выполняем операцию and над их битовыми

масками и считаем количество единиц в результате. Полученное число К равно количеству различных символов, допустимых для этой позиции.
Результат будет равен произведению величин К для различных позиций.

Слайд 13Сверхпростые числа
Задача была предложена на интернет-олимпиаде ИТМО 7 октября 2006 года

Формируем

массив P из первых 3571 простых чисел (3571 – 500-е простое число).
Тогда результат для заданного k будет равен P[P[k]].

Слайд 14Турнир по переписке
Автор задачи – С.И. Кашкевич

Заведем матрицу P размера N

* N, в которой будут храниться результаты каждой партии:
P[i, i] = 0;
P[i, j] = 1, если игрок i выиграл у игрока j;
P[i, j] = 0, если игрок j выиграл у игрока i;
P[i, j] = 0.5, если партия между игроками i и j завершилась вничью;
P[i, j] = -1, если партия между игроками i и j ещё не завершилась.


Слайд 15Турнир по переписке
Заполнение матрицы будем вести в несколько этапов:
полагаем P[i, j]

:= -1 для всех i<>j;
заносим результаты завершившихся партий;
определяем, кто из игроков выбыл из турнира;
для всех P[i, j] = -1 определяем окончательный результат партии, в зависимости от состояния игроков (ничья, поражение отказавшегося, обоюдное поражение)
После этого рассчитываем сумму значений в строках матрицы и выполняем сортировку для вывода.

Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика