В этом разделе вы сможете найти всё
для подготовки к олимпиаде, а именно : условия задач, которые вам
будет полезно порешать, а также алгоритмы решений некоторых из них,
и советы которые помогут вам не занять последнее место. Есть интересные
задачи? Пишите!
Предлагаю вам решить ещё несколько задач. Вот они:
1)Найти и вывести на экран число, меньшее 250, которое
при делении на 2 даёт в
остатке 1, при делении на 3 даёт в остатке 2, при делении
на 4 - 3, на 5 - 4, на 6 - 5, но на 7 делится нацело.
2)Для заданных 4-х точек на плоскости найти пути минимального
и максимального обхода их по замкнутому маршруту (под обходом понимается
замкнутая ломаная линия, проходящая через каждую точку не более
одного раза, кроме начальной).
Пимер координат:
x y
0 0
0 3
4 0
5 10
3) Фокусник раскладывает колоду карт (52 листа, 4
масти) по одной карте сверху на 4 кучки. Затем кучки складываются
в колоду в порядке возрастания номеров (внизу первая). Данный процесс
повторяется n раз, после чего в кучках оказываются карты одной масти,
расположенные в возрастающем порядке : нижняя-двойка, верхняя туз
(1 кучка - пики, 2 - трефы, 4- черви). Во всех действиях карты лежат
рубашкой вверх. В каком порядке фокусник должен сложить карты в
колоду перед показом фокуса?
Требования: Число n вводится с клавиатуры.
Ответ представить в виде 4-х строк на экране по 13 карт в
строке.
Карты обозначаются: 2п - двойка пик, 10б - десятка бубен,
тч - туз черви.
Я предлагаю вам решить следующие
задачи, из олимпиады, предложенной на нашей школьной олимпиаде в
2000 году(средняя сложность):
1)Сумма цифр x равна y, а сумма
цифр числа у равна z. Найти x если x+y+z=60.
2)Дано натуральное число c. Заменить
в нём все 'пятёрки' на 'единицы'.
3)Расшифруйте ребус: т р и -
д в а = я р д.
4)Дано число N в десятичной системе
счисления. Найти количество цифр и количество единиц в его двоичном
представлении.
5)В целочисленном массиве A,
содержится N элементов.Найти число повторяющееся максимальное число
раз. Если этих чисел несколько, то выбрать одно из них.
Удачи...
Давайте сегодня рассмотрим алгоритмы
решения некоторых задач:
Задача 1 Триангуляция (на 6 баллов)
Даны координаты вершин квадрата на плоскости. Внутри
квадрата имеется n точек. Рассматриваются эти точки вместе с вершинами
квадрата, причём никакие 3 из них не лежат на одной прямой. Описать
алгоритм разбиения квадрата на непересекающиеся треугольники с вершинами
в данных точках.
Решение:
Разбиение геометрической фигуры
на элементарные треугольники называется триангуляция. Этот процесс
часто применяется и в математике и в информатике, и во многих инженерных
задачах. В данной задаче вершины элементарных треугольников заданы.
Проведём диагональ данного квадрата и решим отдельно задачу для
двух получившихся треугольников. Объединение решений, очевидно,
даст искомое решение исходной задачи.
Приведём рекурсивный алгоритм триангуляции треугольника.
Алгоритм Триангуляция:
Если точек, попавших внутрь данного
треугольника нет, то добавляем данный треугольник в итоговый список.
В противном случае, выбираем точку внутри треугольника,
соединяем её с вершинами треугольника и применяем
алгоритм 'Триангуляция' к каждому из 3 образовавшихся тр-ков.
Задача 2. Числа Фибоначчи (на
6 баллов)
Что такое числа Фибоначчи, я надеюсь, нет нужды объяснять - это
такая последовательность, где каждый следующий член - сумма 2-х
предыдущих, а первые два члена - 1,1.
Лучше всего использовать следующий
рекурсивный алгоритм функции:
Fib(n:integer):integer;
Begin
If n<3 then fib:=1
Else fib:=fib(n-1)+fib(n-2);
End;
|