Це питання має аналогічний набір для пошуку масиву, який відповідає набору сум, хоча він і зовсім відрізняється від своїх цілей.
Розглянемо масив 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який б створював той самий набір сум.
Ми розглянемо лише масиви, де елементи є або заданим цілим числом, sабо s+1. Наприклад, якщо s=1масиви містили б лише 1і 2.
Завдання
Завдання, для даного nі sє підрахунок кількості унікальних масивів цієї довжини. Ви можете припустити, що sце між 1і 9.
Ви не повинні рахувати реверс масиву, а також сам масив.
Приклади
s = 1, відповідь завжди n+1.
s = 2, відповіді, що підраховуються n = 1вище:
2,3,6,10,20,32,52,86
s = 8, відповіді, що підраховуються n = 1вище:
2,3,6,10,20,36,68,130
Оцінка
Для даного nкоду слід вивести відповідь на всі значення від sз 1до 9. Ваш бал - це найвище значення, nза яке це завершується за одну хвилину.
Тестування
Мені потрібно запустити ваш код на моїй машині ubuntu, тому, будь ласка, включіть якомога детальніші інструкції щодо того, як компілювати та запускати ваш код.
Таблиця лідерів
- n = 24 Андерс Касеорг в іржі (34 секунди)
- n = 16 від Ourous в чистоті (36 секунд)
- n = 14 від JRowan у Common Lisp (49 секунд)