이것은 고유 한 세트를 만드는 Count 배열에 대한 후속 조치 입니다. 중요한 차이점은 고유성의 정의입니다.
A
length 배열 을 고려하십시오 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
사이에 있다고 가정 할 수 있습니다 . 요소가 지정된 정수 또는 배열 인 배열 만 계산하면 됩니다. 예를 들어 계산하려는 배열에 and 만 포함되어 있으면 . 그러나 고유성의 정의는 동일한 길이의 다른 배열과 관련이 있습니다. 구체적인 예로서 이다 되지 는 같은 금액의 동일한 세트를 제공 같은 고유 .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
from에서 모든 값에 대한 답변을 출력해야 1
합니다 9
. n
1 분 안에 완료되는 최고 점수입니다 .
테스팅
우분투 컴퓨터에서 코드를 실행해야하므로 코드를 컴파일하고 실행하는 방법에 대해 가능한 한 자세한 지침을 포함하십시오.
리더 보드
- Haskell의 Christian Sievers의 n = 13 (42 초)
s
? 그것은 무엇을 상징합니까?