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}
.
Bài tập
Đưa ra một tập hợp S
được đưa ra theo thứ tự được sắp xếp chỉ chứa các số nguyên dương và độ dài mảng n
, nhiệm vụ của bạn là xuất ra ít nhất một mảng X
sao cho f(X) = S
.
Ví dụ, nếu S = {1,2,3,5,6}
và n = 3
sau đó một đầu ra hợp lệ là X = (1,2,3)
.
Nếu không có mảng như vậy, X
mã của bạn sẽ xuất ra bất kỳ giá trị không đổi.
Ví dụ
Đầu vào : n=4, S = (1, 3, 4, 5, 6, 8, 9, 10, 13)
, đầu ra có thể:X = (3, 5, 1, 4)
Đầu vào : n=6, S = (2, 3, 4, 5, 7, 8, 9, 10, 12, 14, 17, 22)
, đầu ra có thể:X = (5, 3, 2, 2, 5, 5)
Đầu vào : n=6, S = (2, 4, 6, 8, 10, 12, 16)
, đầu ra có thể:X = (4, 2, 2, 2, 2, 4)
Đầu vào : n=6, S = (1, 2, 3, 4, 6, 7, 8, 10, 14)
, đầu ra có thể:X = (4, 2, 1, 1, 2, 4)
Đầu vào : n=10, S = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 23, 24, 25)
, đầu ra có thể : X = (1, 1, 3, 1, 2, 1, 2, 5, 4, 5)
.
Đầu vào : n=15, S = (1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31)
, đầu ra có thể : X = (1, 2, 1, 3, 3, 1, 3, 3, 1, 3, 3, 1, 2, 1, 3)
.
Định dạng đầu vào và đầu ra
Mã của bạn có thể nhận đầu vào và cung cấp đầu ra ở bất kỳ định dạng dễ đọc nào mà bạn thấy thuận tiện. Tuy nhiên, vui lòng hiển thị đầu ra của thử nghiệm trên các ví dụ trong câu hỏi.
Thời gian chạy
Bạn phải có khả năng chạy mã để hoàn thành tất cả các ví dụ trong câu hỏi. Về nguyên tắc, nó phải chính xác cho n
đến tối đa 15
nhưng bạn không cần phải chứng minh rằng nó sẽ đủ nhanh cho tất cả các đầu vào.