Editorial for Trở về tuổi thơ
Submitting an official solution before solving the problem yourself is a bannable offence.
Author:
Gọi là trạng thái nửa phải của dãy mảnh ghép hiện tại,
nếu nửa phải lõm vào và
nếu nửa phải nhô ra.
Nhận xét: Nếu lựa chọn mảnh loại hoặc
để tiếp tục ghép vào, trạng thái
không thay đổi
vẫn duy trì nửa phải lõm vào hoặc nhô ra
. Ngược lại nếu lựa chọn mảnh
hoặc
, trạng thái
sẽ thay đổi
thành
và
thành
.
Đầu tiên, đưa mảnh hoặc
vào dãy mảnh ghép hiện tại. Bài toán có thể giải quyết bằng tham lam để lần lượt ghép các mảnh: lựa chọn mảnh có thể ghép được và có giá trị nhỏ nhất để ghép vào dãy hiện tại. Sau khi kết thúc ghép tham lam sẽ còn dư một số mảnh chưa được ghép, các mảnh còn dư này đều có nửa trái lõm vào hoặc đều có nửa trái nhô ra. Nếu trong số các mảnh còn dư có mảnh loại
hoặc
thì không tồn tại cách ghép toàn bộ các mảnh. Vì vậy, ta xét trường hợp các mảnh còn dư đều thuộc loại
hoặc các mảnh còn dư đều thuộc loại
. Vì việc ghép mảnh loại
hoặc
không làm thay đổi trạng thái
, nên ta chỉ cần tìm vị trí có thể ghép được đầu tiên từ phải sang của dãy hiện tại để chèn vào
nếu không tồn tại vị trí như vậy thì hiển nhiên không tồn tại cách ghép toàn bộ các mảnh
. Cuối cùng sau khi đã ghép đủ
mảnh, kiểm tra xem có thể ghép mảnh loại
hoặc
vào dãy hay không.
Độ phức tạp: .
Comments