소개
그의 왕국의 세금을 관리하는 데 어려움을 겪는 세금 징수 원이 있습니다.
그는 현재 돈이 어디에서 물려 받았는지에 대해 얼마나 많은 과거가있을 수 있는지 알고 싶어합니다. 다행히 그의 왕국은 매우 간단합니다.
왕국은 l
돈을 물려받은 O
사람을 나타내며 그렇지 않은 사람을 나타내는 2D 부울 행렬로 모델링 할 수 있습니다 . 예를 들면 다음과 같습니다.
l O l l
O O O l
l O l O
O O O l
(항상 직사각형입니다)
다음 세대에 왕국은 더 작습니다 (늑대는 강합니다!).
다음 세대는 이전 세대와 겹쳐진 모습입니다 (차세대 x
후손의 자리 표시 자).
l O l l
x x x
O O O l
x x x
l O l O
x x x
O O O l
후손이 그들 주위에 직접적 조상 볼 것이다 (왼쪽 상단 그렇게 x
볼 수 { l
, O
, O
, O
},라는 정렬되지 않은 사각 지역 )
한 조상 만이 돈을 상속받은 경우, 후손은 돈을 상속받습니다. 두 명 이상의 조상이 돈을 물려 받았다면 그들은 물러서서 후손은 돈을 물려받지 못할 것입니다. 돈을 상속받지 못한 사람은 후손이 돈을 상속받지 않습니다.
(하나 이상의 조상으로부터 하나 이상의 후손이 상속 될 수 있음)
따라서 다음 세대는 다음과 같습니다.
l l O
l l O
l l O
도전
입력
내부 배열의 길이가 모두 동일한 두 개의 고유 한 값으로 구성된 배열의 배열로 생성되는 현재 상태입니다.
예를 들어 위의 예에서 다음과 같습니다.
[
[True, True, False],
[True, True, False],
[True, True, False]
]
산출
다음 세대가 입력 인 고유 한 이전 세대 수를 나타내는 정수입니다.
답은 항상 2 ^ 30-1 (또는 1073741823)보다 작을 것이라고 가정 할 수 있습니다.
이전 세대를 "사전 이미지"라고하며이 과제는 사전 이미지 를 세는 것 입니다.
채점
이것은 가장 빠른 코드 각 제출물은 내 컴퓨터에서 테스트되며 시간이 가장 적게 걸리는 제출물이 승자가됩니다.
입력 및 출력 예
( 1
돈을 상속받은 자손은 어디에 있고 돈을 상속 0
받지 않은 자손은 어디에 있습니까 )
입력:
[[1, 0, 1],
[0, 1, 0],
[1, 0, 1]]
산출:
4
입력:
[[1, 0, 1, 0, 0, 1, 1, 1],
[1, 0, 1, 0, 0, 0, 1, 0],
[1, 1, 1, 0, 0, 0, 1, 0],
[1, 0, 1, 0, 0, 0, 1, 0],
[1, 0, 1, 0, 0, 1, 1, 1]]
산출:
254
입력:
[[1, 1, 0, 1, 0, 1, 0, 1, 1, 0],
[1, 1, 0, 0, 0, 0, 1, 1, 1, 0],
[1, 1, 0, 0, 0, 0, 0, 0, 0, 1],
[0, 1, 0, 0, 0, 0, 1, 1, 0, 0]]
산출:
11567