Це питання має аналогічний набір для пошуку масиву, який відповідає набору сум, хоча він і зовсім відрізняється від своїх цілей.
Розглянемо масив 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 секунд)