Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Olymp8

.pdf
Скачиваний:
35
Добавлен:
21.03.2016
Размер:
1.65 Mб
Скачать

Разбор

2, 3, 5, 29, 869, 756029, 571580604869…

Все попарно взаимнопросты (из формулы следует)

=> жадный алгоритм разложения Х: пока Х делится на 2, делим его на 2, затем также на 3, 5, …, 756029

Если в конце осталась 1 – разложить можно

Чтобы получить разложение, необходимо запомнить, сколько раз мы поделили на каждое

Мат-мех 2015

21

Степень

(делимость)

Для того чтобы проверить, как её ученики умеют считать, Мария Ивановна каждый год задаёт им на дом одну и ту же задачу – для заданного натурального A найти минимальное натуральное N такое, что N в степени N (N, умноженное на себя N раз) делится на A. От года к году и от ученика к ученику меняется только число A.

Вы решили помочь будущим поколениям. Для этого вам необходимо написать программу, решающую эту задачу.

 

Входные данные

 

 

1

 

Входные данные

Выходные данные

 

Во входном файле содержится единственное

 

1

 

число A (1≤A≤1000000000 – на всякий случай;

 

вдруг Мария Ивановна задаст большое число,

--------------------------------------

чтобы «завалить» кого-нибудь…).

Входные данные

 

Выходные данные

8

 

 

 

В выходной файл вывести единственное число

Выходные данные

 

N.

 

4

 

Мат-мех 2015

22

Разбор

N содержит в своем разложении все простые множители A

M:=произведение простых мн.A

Правильный ответ всегда делится на M

Поэтому перебираем числа M, 2M, 3M,… пока не найдём подходящее

И еще <=40M, т.е. не более 40 шагов

Но большие числа!

Вместо чисел используйте их разложения на простые множители Завести спец.тип «разложение», который будет содержать

-число различных простых мн.

 

-множители

 

-степени, с которыми они входят в разложение

 

Реализовать операции с этим типом

 

-разложение числа на пр.мн.

 

-умножение

 

-взведение в степень

 

-проверка делимости одного на другое

 

Мат-мех 2015

23

Игры

Сапёр

Шахматы

Strategy tetris

Игра с фишками

Трёхмерные ладьи

Мат-мех 2015

24

Сапёр

В "Сапер" играет один человек. Игра идет на клетчатом поле (далее будем называть его картой) NxM (N строк, M столбцов). В K клетках поля стоят мины, в остальных клетках записано либо число от 1 до 8 — количество мин в соседних клетках, либо ничего не написано, если в соседних клетках мин нет. Клетки являются соседними, если они имеют хотя бы одну общую точку, в одной клетке не может стоять более одной мины. Изначально все клетки поля закрыты. Игрок за один ход может открыть какую-нибудь клетку. Если в открытой им клетке оказывается мина — он проигрывает, иначе игроку показывается число, которое стоит в этой клетке, и игра продолжается. Цель игры — открыть все клетки, в которых нет мин.

У Васи на компьютере есть эта игра, но ему кажется, что все карты, которые в ней есть, некрасивые и неинтересные. Поэтому он решил нарисовать свои. Однако фантазия у него богатая, а времени мало, и он хочет успеть нарисовать как можно больше карт. Поэтому он просто выбирает N, M и K и расставляет мины на поле, после чего все остальные клетки могут быть однозначно определены. Однако на определение остальных клеток он не хочет тратить свое драгоценное время. Помогите

ему!

Мат-мех 2015 25

По заданным N, M, K и координатам мин восстановите полную карту.

Пример

Входные данные

В первой строке входного файла содержатся числа N, M и K (1 N 200, 1 M 200, 0 K N M). Далее идут K строк, в каждой из которых содержится по два числа, задающих координаты мин. Первое число в каждой строке задает номер строки клетки, где находится мина, второе число — номер столбца. Левая верхняя клетка поля имеет координаты (1,1), правая нижняя — координаты (N,M).

Выходные данные

Выходной файл должен содержать N строк по M символов — соответствующие строки карты. j-й символ i-й строки должен содержать символ ‘*‘ (звездочка) если в клетке (i,j) стоит мина, цифру от 1 до 8, если в этой клетке стоит соответствующее число, либо ‘.‘ (точка), если клетка (i,j) пустая.

Входные данные

10 9 23

1 7

2 3

3 2

3 3

4 3

5 7

6 7

7 1

7 2

7 3

7 4

7 5

7 6

7 7

7 8

8 1

 

 

 

 

Мат-мех 2015

26

8 3

 

 

 

 

 

 

 

 

 

 

8 5

8 7

9 3

9 5

9 6

9 7

 

Быстрые шахматы

На шахматной доске (размером 8 Х 8 клеток) расставлены фигуры. За один ход разрешается взять одной фигурой другую (цвет фигур значения не имеет; ходы без взятия делать нельзя). Требуется найти последовательность ходов, после которой на доске останется одна фигура

Ладья ходит по горизонтали или вертикали на любое число клеток. Слон ходит по диагонали на любое число клеток. Ферзь ходит по горизонтали, вертикали или диагонали на любое число клеток. Эти фигуры не могут перепрыгивать через другие фигуры. Конь ходит на две клетки по горизонтали или вертикали и на одну клетку в перпендикулярном направлении (например, на 2 клетки вверх и на одну клетку вправо и т.п.), при этом он может перепрыгивать через другие фигуры.

Входные данные

В восьми строках входных данных записаны по 8 символов, описывающих шахматную доску: R — ладья, B — слон, K — конь, Q — ферзь, точка обозначает пустую клетку. На доске изначально стоит не менее двух и не более десяти фигур.

Выходные данные

Выведите возможную последовательность в следующем формате. Для каждого хода указывается сначала клетка, с которой делается ход, затем двоеточие, затем клетка, на которую делается ход. Клетка задается столбцом и строкой: столбцы нумеруются слева направо строчными латинскими буквами a, b, c, d, e, f, g, h; строки — снизу вверх цифрами 1, 2, 3, 4, 5, 6, 7, 8.

Если решений несколько, приведите любое из них. Если решений нет, выведите NO SOLUTION

Мат-мех 2015

27

Strategy tetris

Как и в обычном тетрисе, поле в игре Strategy Tetris представляет собой "стакан" шириной в W клеток (1<=W<=109) и бесконечной высоты. В этот стакан падают сверху N фигурок (1<=N<=100000). i-я фигурка представляет собой прямоугольник

шириной в Wi клеток и высотой в одну клетку; самая левая клетка фигурки имеет абсциссу ai (1<=ai<=WWi+1). Фигурки падают по обычным правилам: если при падении фигурка хотя бы одной своей клеткой ложится на какую-либо уже упавшую фигурку, то ее движение прекращается.

В отличие от обычного тетриса, игрок не имеет возможности вращать фигурки или смещать их по горизонтали в процессе падения — еще бы, это пришлось бы делать быстро и не было бы времени серьёзно подумать над стратегией. Единственное, что он может — это выбрать порядок, в котором эти N фигурок упадут в стакан (каждая по одному разу). Ваша задача — помочь ему выбрать такой порядок, при котором высота образовавшейся в результате падения конструкции была бы как можно меньше. (В отличие от обычного тетриса, полностью заполненная фигурками горизонталь никуда не исчезает)

Входные данные

В первой строке входного файла записаны числа N и W, а в последующих N строках — пары чисел ai и Wi.

Выходные данные

Выведите в выходной файл минимальную возможную высоту конструкции, а затем последовательность номеров фигурок, к этой высоте приводящую. Фигурки нумеруются натуральными числами от 1 до N в том порядке, в котором они указаны во входных данных. Если возможных вариантов несколько, выведите любой из них.

Мат-мех 2015

28

Тетрис. Пример

Входные данные

В первой строке входного файла записаны числа N и W, а в последующих N строках — пары чисел ai и Wi.

Выходные данные Выведите в выходной файл минимальную возможную высоту

конструкции, а затем последовательность номеров фигурок, к этой высоте приводящую. Фигурки нумеруются натуральными числами от 1 до N в том порядке, в котором они указаны во входных данных. Если возможных вариантов несколько, выведите любой из них.

Мат-мех 2015

29

Игра с фишками

Вы являетесь одним из разработчиков новой компьютерной игры. Игра происходит на прямоугольной доске, состоящей из W×H клеток. Каждая клетка может либо содержать, либо не содержать фишку (см. рисунок).

Важной частью игры является проверка того, соединены ли две фишки путем, удовлетворяющим следующим свойствам:

1.Путь должен состоять из отрезков вертикальных и горизонтальных прямых. 2.Путь не должен пересекать других фишек.

При этом часть пути может оказаться вне доски. Например:

Фишки с координатами (1,3) и (4,4) могут быть

 

 

соединены. Фишки с координатами (2,3) и (5,3) тоже

 

могут быть соединены. А вот фишки с координатами

 

(2,3) и (3,4) соединить нельзя – любой соединяющий

 

их путь пересекает другие фишки.

 

 

Вам необходимо написать программу, проверяющую,

 

можно ли соединить две фишки путем, обладающим

 

вышеуказанными свойствами, и, в случае

 

 

положительного ответа, определяющую минимальную

 

длину такого пути (считается, что путь имеет изломы,

 

начало и конец только в центрах клеток (или

 

 

«мнимых клеток», расположенных вне доски), а

 

отрезок, соединяющий центры двух соседних клеток,

 

имеет длину 1).

Мат-мех 2015

30

 

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]