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

Olymp8

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

Мат-мех 2015

11

Мат-мех 2015

12

Мат-мех 2015

13

Мат-мех 2015

14

Мат-мех 2015

15

Мат-мех 2015

16

Заполни массив 2

(делимость, динамическое программирование)

Требуется заполнить N элементов массива, пронумерованных числами от 1 до N (A[1]…A[N]), натуральными числами от 2 до N+1, использовав каждое число ровно один раз, так, чтобы значение каждого элемента массива делилось бы нацело на его номер (т.е. для каждого i A[i] делилось бы на i).

Напишите программу, которая для заданного N вычислит количество способов такого заполнения массива.

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

Вводится одно натуральное число N (1≤N≤60000).

Выходные данные Выведите одно число — искомое

количество способов заполнения массива

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

2

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

1

Комментарии Массив можно заполнить

единственным способом: 3 2

Мат-мех 2015

17

Заполни массив 1

Та же задача, но требуется привести пример хотя бы одной расстановки чисел 2,3,…, n+1 в массиве a[1..n] так, чтобы a[i] делилось на i

Вот один из вариантов:

a[i] = n+1 при i = 1 a[i] = i для остальных i

Мат-мех 2015

18

А теперь «Заполни массив 2»

Назовём расстановку из предыдущей задачи тривиальной

Решим динамическим программированием

Пусть dp[n] – ответ для n

dp[n] = SUM(dp[k])

по всем k, на которые делится n+1

dp[1] = 1, остальные вычисляем, перебирая для каждого i все его делители (которых не более 2sqrt(i))

За O(n*sqrt(n))

А при грамотном переборе и за О(n*logn)

Мат-мех 2015

19

Псевдопростые числа

Пусть a1 = 2, a2 = 3, an = a1∙a2∙...∙an-1 – 1 при n ≥ 3. Назовем числа ai псевдопростыми. Для заданного натурального числа X нужно ответить на вопрос: можно ли X однозначно представить в виде произведения псевдопростых чисел (представления, отличающиеся только порядком множителей, считаются одинаковыми), и, если можно — выдать разложение.

 

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

 

 

6

 

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

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

 

Вводится одно натуральное число X, 1 < X ≤

 

2 3

 

10^9.

 

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

 

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

 

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

5

 

 

 

Выведите псевдопростые числа,

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

 

произведение которых равно X, в

 

5

 

произвольном порядке. Если разложения не

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

существует или оно не единственно, выдать 0.

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

 

7

 

 

 

Мат-мех 2015

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

20

 

0

 

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