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

Презентация:



Advertisements
Похожие презентации
Разбор заданий ЕГЭ Типичные задания С2. Содержание Перечень задач Задача 1 Задача 2 Задача 3 Решить самостоятельно Задача 4 Задача 5 Задача 6 Перечень.
Advertisements

Массивы 9 класс. Основные теоретические сведения Примеры решения задач.
ЕГЭ информатика Алгоритмизация и программирование Консультация 4.
1 Программирование на языке Паскаль Ветвления. 2 Разветвляющиеся алгоритмы Задача. Ввести два целых числа и вывести на экран наибольшее из них. Идея решения:
Задания части А Задания части С. 1. Значения двух массивов A[1..100] и B[1..100] задаются с помощью следующего фрагмента программы. Сколько элементов.
1 Программирование на языке Паскаль Тема 2. Ветвления.
Алгоритмы на графах Определение наличия циклов в графе Югов Иван Олегович МОУ Гимназия 10, г. Тверь.
ЕДИННЫЙ ГОСУДАРСТВЕННЫЙ ЭКЗАМЕН Часть С демо-варианта 2009.
Pascal Алгоритмы разветвляющейся структуры, программирование на языке Pascal 10 «А» класс.
Результаты ГИА по информатике Ульяновск, ЕГЭ Участников 507 Пороговый балл - 40 Доля участников, не преодолевших «минимальный порог» (%) Доля участников,
Методика решения и оценивания задач «С1», «С2» Единого Государственного Экзамена.
ЕГЭ информатика Алгоритмизация и программирование Консультация 3.
1 Программирование на языке Паскаль Тема 1. Введение.
1 Программирование на языке Паскаль Тема 3. Сложные условия © К.Ю. Поляков,
Задачи с использованием одномерных массивов 1. Опишите алгоритм подсчёта среднего значения положительных элементов в целочисленном массиве из 30 элементов.
Задачи с использованием одномерных массивов 1. Опишите алгоритм подсчёта среднего значения положительных элементов в целочисленном массиве из 30 элементов.
МассивМассив представляет собой совокупность данных одного типа с общим для всех элементов именем. Массив относится к структурированным типам данных (упорядоченная.
Радионик Рената 9Б. Массив – это обозначаемая одним именем последовательность однотипных элементов. Место каждого элемента в этой последовательности определяется.
Условный оператор. Определение линейного алгоритма. Линейный алгоритм – это алгоритм, этапы которого выполняются однократно и строго последовательно.
1 Программирование на языке Паскаль Тема 1. Введение.
Транксрипт:

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

Статистика решения задач Название задачи Сложность (по мнению авторов) Количество решивших Числа-палиндромы 116 Скобочная последовательность 46 Буква А 50 Алхимия 40 Золотая середина 115 Округление 30 Галлеоны, сикли и кнаты 215 Шаблоны 45 Сверхпростые числа 310 Турнир по переписке 44

Числа-палиндромы Автор задачи – С.И. Кашкевич Задача впервые была предложена на чемпионате Гродненского университета в 2010 году. Для решения задачи необходимо: вычислить сумму двух чисел; выделить все цифры суммы в строку; проверить, является ли полученная строка палиндромом

Скобочная последовательность Задача была предложена на интернет-олимпиаде ИТМО 23 сентября 2006 года Задача сводится к проверке правильности скобочной последовательности с использованием стека. Исходную строку «склеиваем» саму с собой, и далее рассматриваем все подстроки длины N, начинающиеся с открывающей скобки. Если хотя бы одна из подстрок является правильной скобочной последовательностью – выводим ответ Yes, иначе – No.

Скобочная последовательность Алгоритм проверки правильности скобочной последовательности с использованием стека. for i := 1 to N do begin if (S i – открывающая скобка) then заносим S i в стек else begin извлекаем из стека символ T; if (стек пуст) or (типы скобок T и S i различаются) then скобки расставлены неверно; end; if (стек пуст) then скобки расставлены верно else скобки расставлены неверно;

Буква А Автор задачи – С.И. Кашкевич Задача впервые была предложена на чемпионате Гродненского университета в 2010 году. Задача решается перебором всех троек отрезков. (Естественно, если N

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

Золотая середина Автор задачи – С.И. Кашкевич Задача, которую, по идее, должны решить все. Приведём авторское решение: ab := (a

Округление Автор задачи – С.И. Кашкевич Относительно простая по условию задача требует аккуратного разбора большого количества случаев: N

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

Шаблоны h002h004h008h010h020h040h080h100h Задача была предложена на интернет-олимпиаде ИТМО 23 сентября 2006 года Задача требует умения работать с битовыми масками. Заведём различные битовые маски для каждого символа, входящего в шаблон: 9abcdefg? 200h00fh01eh03ch078h0f0h1eoh3coh3ffh

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

Сверхпростые числа Задача была предложена на интернет-олимпиаде ИТМО 7 октября 2006 года Формируем массив P из первых 3571 простых чисел (3571 – 500-е простое число). Тогда результат для заданного k будет равен P[P[k]].

Турнир по переписке Автор задачи – С.И. Кашкевич Заведем матрицу 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 ещё не завершилась.

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