Це подальше підрахунок масивів, які створюють унікальні набори . Суттєвою відмінністю є визначення унікальності.
Розглянемо масив Aдовжини n. Масив містить лише додатні цілі числа. Наприклад A = (1,1,2,2). Давайте визначимо f(A)як сукупність сум усіх непустих суміжних підмагістралей A. У цьому випадку f(A) = {1,2,3,4,5,6}. Етапи для створення f(A) наступні:
Підматриці Aє (1), (1), (2), (2), (1,1), (1,2), (2,2), (1,1,2), (1,2,2), (1,1,2,2). Їх відповідні суми є 1,1,2,2,2,3,4,4,5,6. Отже, набір, який ви отримуєте з цього списку, є {1,2,3,4,5,6}.
Ми називаємо масив A унікальним, якщо немає іншого масиву Bтакої ж довжини, який f(A) = f(B), за винятком масиву, Aоберненого назад. Як приклад, f((1,2,3)) = f((3,2,1)) = {1,2,3,5,6}але не існує іншого масиву довжини, 3який б створював той самий набір сум.
Завдання
Завдання, для даного nі sє підрахунок кількості унікальних масивів цієї довжини. Ви можете припустити, що sце між 1і 9. Вам потрібно лише порахувати масиви, де елементи є або заданим цілим числом, sабо s+1. Наприклад, якщо s=1масиви, які ви рахуєте, містять лише 1та 2. Однак визначення унікальності є стосовно будь-якого іншого масиву такої ж довжини. Оскільки конкретний приклад не[1, 2, 2, 2] є унікальним, оскільки він дає той самий набір сум, що і .[1, 1, 2, 3]
Ви повинні рахувати зворотній бік масиву, а також сам масив (до тих пір, поки масив звичайно не є паліндром).
Приклади
s = 1, відповіді на n = 2,3,4,5,6,7,8,9 такі:
4, 3, 3, 4, 4, 5, 5, 6
Бо s = 1унікальні масиви довжиною 4 є
(1, 1, 1, 1)
(2, 1, 1, 2)
(2, 2, 2, 2)
s = 2, відповіді на n = 2,3,4,5,6,7,8,9 такі:
4, 8, 16, 32, 46, 69, 121, 177
Приклад масиву, який не є унікальним, s = 2є:
(3, 2, 2, 3, 3, 3).
Він має той самий набір сум, що і обидва: (3, 2, 2, 2, 4, 3)і (3, 2, 2, 4, 2, 3).
s = 8, відповіді на n = 2,3,4,5,6,7,8,9 такі:
4, 8, 16, 32, 64, 120, 244, 472
Оцінка
Для даного nкоду слід вивести відповідь на всі значення від sз 1до 9. Ваш бал - це найвище значення, nза яке це завершується за одну хвилину.
Тестування
Мені потрібно запустити ваш код на моїй машині ubuntu, тому, будь ласка, включіть якомога детальніші інструкції щодо того, як компілювати та запускати ваш код.
Таблиця лідерів
- n = 13 Крістіан Сіверс в Хаскеллі (42 секунди)
s? Що він представляє?