Jest to kontynuacja tablic Count, które tworzą unikalne zestawy . Istotną różnicą jest definicja wyjątkowości.
Rozważ tablicę Adługości n. Tablica zawiera tylko dodatnie liczby całkowite. Na przykład A = (1,1,2,2). Zdefiniujmy f(A)jako zbiór sum wszystkich niepustych, sąsiadujących pod-macierzy A. W tym przypadku f(A) = {1,2,3,4,5,6}. Kroki do produkcji f(A) są następujące:
Podziemne Asą (1), (1), (2), (2), (1,1), (1,2), (2,2), (1,1,2), (1,2,2), (1,1,2,2). Ich odpowiednie kwoty to 1,1,2,2,2,3,4,4,5,6. Zestaw, który otrzymujesz z tej listy, to dlatego {1,2,3,4,5,6}.
Tablicę nazywamy A unikalną, jeśli nie ma innej tablicy Bo takiej samej długości f(A) = f(B), z wyjątkiem Aodwróconej tablicy . Na przykład, f((1,2,3)) = f((3,2,1)) = {1,2,3,5,6}ale nie ma innej tablicy długości, 3która generowałaby ten sam zestaw sum.
Zadanie
Zadaniem dla danego ni sjest policzenie liczby unikalnych tablic o tej długości. Możesz założyć, że sjest pomiędzy 1i 9. Trzeba tylko liczyć tablice, w których elementy są albo liczbą całkowitą, salbo s+1. Np. Jeśli s=1liczone tablice zawierają tylko 1i 2. Jednak definicja wyjątkowości odnosi się do każdej innej tablicy o tej samej długości. Konkretny przykład nie[1, 2, 2, 2] jest wyjątkowy, ponieważ daje taki sam zestaw sum jak .[1, 1, 2, 3]
Należy liczyć odwrotność tablicy, a także samą tablicę (o ile tablica nie jest oczywiście palindromem).
Przykłady
s = 1, odpowiedzi dla n = 2,3,4,5,6,7,8,9 to:
4, 3, 3, 4, 4, 5, 5, 6
Dla s = 1, unikatowe tablice długości 4 są
(1, 1, 1, 1)
(2, 1, 1, 2)
(2, 2, 2, 2)
s = 2, odpowiedzi dla n = 2,3,4,5,6,7,8,9 to:
4, 8, 16, 32, 46, 69, 121, 177
Przykład tablicy, która nie jest unikalna, s = 2to:
(3, 2, 2, 3, 3, 3).
Ma to ten sam zestaw sum co oba: (3, 2, 2, 2, 4, 3)i (3, 2, 2, 4, 2, 3).
s = 8, odpowiedzi dla n = 2,3,4,5,6,7,8,9 to:
4, 8, 16, 32, 64, 120, 244, 472
Wynik
W przypadku danego nkodu kod powinien wyświetlać odpowiedź dla wszystkich wartości sod 1do 9. Twój wynik jest najwyższą wartością, nktórej wypełnienie następuje w ciągu jednej minuty.
Testowanie
Będę musiał uruchomić Twój kod na moim komputerze z Ubuntu, więc podaj możliwie szczegółowe instrukcje dotyczące tego, jak skompilować i uruchomić kod.
Tabela liderów
- n = 13 autorstwa Christian Sievers w Haskell (42 sekundy)
s? Co to reprezentuje?