Một du khách cần ở lại n ngày trong một khách sạn bên ngoài thị trấn. Anh ta hết tiền và thẻ tín dụng của anh ta đã hết hạn. Nhưng anh ta có một chuỗi vàng với n liên kết.
Quy tắc trong khách sạn này là cư dân nên trả tiền thuê nhà mỗi sáng. Lữ khách đi đến một thỏa thuận với người quản lý để trả một liên kết của chuỗi vàng cho mỗi ngày. Nhưng người quản lý cũng yêu cầu khách du lịch nên tạo ra thiệt hại ít nhất có thể cho chuỗi trong khi trả tiền mỗi ngày. Nói cách khác, anh ta phải đưa ra một giải pháp để cắt càng ít liên kết càng tốt.
Cắt một liên kết tạo ra ba chuỗi con: một liên kết chỉ chứa liên kết cắt và một liên kết ở mỗi bên. Ví dụ, việc cắt liên kết thứ ba của chuỗi có độ dài 8 sẽ tạo ra các chuỗi con có độ dài [2, 1, 5]. Người quản lý rất vui khi thực hiện thay đổi, vì vậy khách du lịch có thể thanh toán vào ngày đầu tiên với chuỗi độ dài 1, sau đó là ngày thứ hai với chuỗi độ dài 2, lấy lại chuỗi đầu tiên.
Mã của bạn nên nhập độ dài n và xuất ra danh sách các liên kết cần cắt có độ dài tối thiểu.
Quy tắc :
- n là số nguyên> 0.
- Bạn có thể sử dụng lập chỉ mục dựa trên 0 hoặc 1 dựa trên các liên kết.
- Đối với một số con số, giải pháp không phải là duy nhất. Ví dụ, nếu
n = 15
cả hai[3, 8]
và[4, 8]
là đầu ra hợp lệ. - Bạn có thể trả về danh sách hoặc in bằng bất kỳ dấu phân cách hợp lý nào.
- Đây là mã golf , vì vậy mã ngắn nhất tính bằng byte sẽ thắng.
Các trường hợp thử nghiệm :
Input Output (1-indexed)
1 []
3 [1]
7 [3]
15 [3, 8]
149 [6, 17, 38, 79]
Ví dụ chi tiết
Với n = 15, việc cắt các liên kết 3 và 8 dẫn đến các chuỗi con có độ dài [2, 1, 4, 1, 7]
. Đây là một giải pháp hợp lệ vì:
1 = 1
2 = 2
3 = 1+2
4 = 4
5 = 1+4
6 = 2+4
7 = 7
8 = 1+7
9 = 2+7
10 = 1+2+7
11 = 4+7
12 = 1+4+7
13 = 2+4+7
14 = 1+2+4+7
15 = 1+1+2+4+7
Không có giải pháp nào chỉ có một vết cắt tồn tại, vì vậy đây là một giải pháp tối ưu.
Phụ lục
Lưu ý rằng vấn đề này có liên quan đến phân vùng số nguyên. Chúng tôi đang tìm kiếm một phân vùng P của n sao cho tất cả các số nguyên từ 1 đến n có ít nhất một patition đó là một tập hợp con của P .
Đây là một video YouTube về một thuật toán có thể cho vấn đề này.
1+2
. Chuỗi 2 liên kết thứ hai đến từ đâu?