Giới thiệu
Có một người thu thuế gặp một số khó khăn trong việc quản lý thuế của vương quốc của mình: các hồ sơ lịch sử đã bị đốt cháy trong một đám cháy lớn.
Anh ta muốn tìm hiểu có bao nhiêu quá khứ có thể có về mặt tiền được thừa kế từ đâu. May mắn thay, vương quốc của anh ấy rất đơn giản.
Vương quốc có thể được mô hình hóa bằng ma trận boolean 2D, nơi l
đại diện cho một người được thừa hưởng tiền và O
đại diện cho một người không có. Ví dụ:
l O l l
O O O l
l O l O
O O O l
(Nó sẽ luôn là một hình chữ nhật)
Ở thế hệ tiếp theo, vương quốc nhỏ hơn (Những con sói rất mạnh!).
Thế hệ tiếp theo sẽ trông như thế này, được đặt chồng lên thế hệ trước ( x
là một người giữ chỗ cho một hậu duệ ở thế hệ tiếp theo)
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
Một hậu duệ sẽ xem xét tổ tiên liên quan trực tiếp xung quanh họ (Vì vậy, phía trên bên trái x
sẽ thấy { l
, O
, O
, O
}, được gọi là một hình chữ nhật hàng xóm Unaligned )
Nếu chỉ có một tổ tiên được thừa hưởng tiền, con cháu sẽ được thừa hưởng tiền từ họ. Nếu có nhiều hơn một tổ tiên đã được thừa kế tiền, họ sẽ chiến đấu và con cháu cuối cùng sẽ không được thừa kế tiền. Nếu không ai được thừa kế tiền, con cháu sẽ không được thừa kế bất kỳ khoản tiền nào.
(Nhiều hơn một hậu duệ có thể thừa hưởng từ một tổ tiên)
Vì vậy, thế hệ tiếp theo sẽ như thế nào:
l l O
l l O
l l O
Thử thách
Đầu vào
Trạng thái hiện tại của thế hệ, như một mảng các mảng có hai giá trị riêng biệt, trong đó các mảng bên trong đều có cùng độ dài.
Ví dụ, ví dụ trên, nó có thể là:
[
[True, True, False],
[True, True, False],
[True, True, False]
]
Đầu ra
Một số nguyên biểu thị số lượng thế hệ trước duy nhất trong đó thế hệ tiếp theo là đầu vào.
Bạn có thể giả sử rằng câu trả lời sẽ luôn nhỏ hơn 2 ^ 30 - 1. (hoặc 1073741823).
Thế hệ trước sẽ được gọi là "tiền thân" và thử thách này sẽ là đếm số tiền tố .
Chấm điểm
Đây là một thử thách mã nhanh nhất , vì vậy mỗi bài nộp sẽ được kiểm tra trên máy tính của tôi và bài nộp mất ít thời gian nhất sẽ là người chiến thắng.
Ví dụ đầu vào và đầu ra
(Đâu 1
là một hậu duệ được thừa hưởng tiền và 0
là một hậu duệ không được thừa kế tiền)
Đầu vào:
[[1, 0, 1],
[0, 1, 0],
[1, 0, 1]]
Đầu ra:
4
Đầu vào:
[[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]]
Đầu ra:
254
Đầu vào:
[[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]]
Đầu ra:
11567