Đâ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 Achiề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 Alà (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ó Bcù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 3nà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 nvà nhất định slà đếm số lượng các mảng duy nhất có độ dài đó. Bạn có thể cho rằng đó slà giữa 1và 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 shoặc s+1. Ví dụ, nếu s=1các mảng bạn đang đếm chỉ chứa 1và 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 = 2là:
(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 nmã nhất định , mã của bạn sẽ đưa ra câu trả lời cho tất cả các giá trị stừ 1đến 9. Điểm của bạn là giá trị cao nhất nmà đ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)
sgì Nó đại diện cho cái gì?