Đây là phần tiếp theo để đếm mảng tạo nên các bộ duy nhất . Sự khác biệt đáng kể là định nghĩa về tính độc đáo.
Hãy xem xét một mảng A
chiều dài n
. Mảng chỉ chứa số nguyên dương. Ví dụ A = (1,1,2,2)
. Hãy để chúng tôi định nghĩa f(A)
là tập hợp của tất cả các phân đoạn tiếp giáp không trống của A
. Trong trường hợp này f(A) = {1,2,3,4,5,6}
. Các bước để sản xuất f(A)
như sau:
Các subarrays của A
là (1), (1), (2), (2), (1,1), (1,2), (2,2), (1,1,2), (1,2,2), (1,1,2,2)
. Số tiền tương ứng của họ là 1,1,2,2,2,3,4,4,5,6
. Do đó, bộ bạn nhận được từ danh sách này là do {1,2,3,4,5,6}
.
Chúng tôi gọi một mảng A
duy nhất nếu không có mảng nào khác có B
cùng độ dài như vậy f(A) = f(B)
, ngoại trừ mảng bị A
đảo ngược. Ví dụ, f((1,2,3)) = f((3,2,1)) = {1,2,3,5,6}
nhưng không có mảng độ dài 3
nào khác tạo ra cùng một tập hợp tổng.
Bài tập
Nhiệm vụ, cho một n
và nhất định s
là đếm số lượng các mảng duy nhất có độ dài đó. Bạn có thể cho rằng đó s
là giữa 1
và 9
. Bạn chỉ cần đếm các mảng trong đó các phần tử là một số nguyên cho trước s
hoặc s+1
. Ví dụ, nếu s=1
các mảng bạn đang đếm chỉ chứa 1
và 2
. Tuy nhiên, định nghĩa về tính duy nhất là đối với bất kỳ mảng nào khác có cùng độ dài. Như một ví dụ cụ thể không phải[1, 2, 2, 2]
là duy nhất vì nó cho cùng một tập hợp tổng .[1, 1, 2, 3]
Bạn nên đếm ngược lại của một mảng cũng như chính mảng đó (miễn là mảng đó không phải là một bảng màu).
Ví dụ
s = 1
, câu trả lời cho n = 2,3,4,5,6,7,8,9 là:
4, 3, 3, 4, 4, 5, 5, 6
Đối với s = 1
, các mảng duy nhất có độ dài 4 là
(1, 1, 1, 1)
(2, 1, 1, 2)
(2, 2, 2, 2)
s = 2
, câu trả lời cho n = 2,3,4,5,6,7,8,9 là:
4, 8, 16, 32, 46, 69, 121, 177
Một ví dụ về một mảng không phải là duy nhất s = 2
là:
(3, 2, 2, 3, 3, 3).
Điều này có cùng một tập hợp tổng của cả hai: (3, 2, 2, 2, 4, 3)
và (3, 2, 2, 4, 2, 3)
.
s = 8
, câu trả lời cho n = 2,3,4,5,6,7,8,9 là:
4, 8, 16, 32, 64, 120, 244, 472
Ghi bàn
Đối với một n
mã nhất định , mã của bạn sẽ đưa ra câu trả lời cho tất cả các giá trị s
từ 1
đến 9
. Điểm của bạn là giá trị cao nhất n
mà điều này hoàn thành trong một phút.
Kiểm tra
Tôi sẽ cần chạy mã của bạn trên máy ubfox của mình, vì vậy vui lòng bao gồm các hướng dẫn chi tiết nhất có thể về cách biên dịch và chạy mã của bạn.
Bảng xếp hạng
- n = 13 bởi Christian Sievers trong Haskell (42 giây)
s
gì Nó đại diện cho cái gì?