Tôi gặp phải vấn đề này có vẻ khá thú vị. Có một vài bộ phim mà chúng tôi muốn xem tất cả chúng nhưng chúng chỉ hiển thị vào những thời điểm sau:Xem tất cả thuật toán phim
movieA : 15
movieB : 14, 15, 17
movieC : 15, 17
movieD : 15, 20
Chúng tôi có thể xem A ở 15, B ở 14, C ở 17 và D ở 20, vì vậy, có thể xem tất cả. Lưu ý rằng bạn không thể xem C ở mức 15, không thể thực hiện được.
Vấn đề như bạn đã đoán, liệu chúng tôi có thể xem tất cả không.
Rõ ràng là chúng tôi có thể giải quyết nó bằng tính năng backtracking, thử tất cả các khả năng. Có cách nào tốt hơn để làm điều đó không? Tôi có ý tưởng bắt đầu với các bộ phim có ít nhất số lần có sẵn trước tiên, theo cách đó chúng tôi có thể tìm giải pháp nhanh hơn nếu có giải pháp, độ phức tạp của trường hợp xấu nhất vẫn như cũ.
Có thuật toán nào tốt hơn cho vấn đề này không?
P.S. Khi @gen hỏi, tôi quên chỉ ra rằng mỗi bộ phim là 1 giờ, vì vậy nếu bạn xem một lúc 14:00, bạn sẽ không bỏ lỡ một lúc 15:00. Cam ơn vi đa hỏi.
phim dài bao lâu? – gen
@gen mỗi bộ phim là một giờ, vì vậy bạn không cần phải lo lắng nếu bạn xem một bộ phim lúc 14:00, bạn có thể bỏ lỡ một lúc 15:00. Câu hỏi tuyệt vời! – Arch1tect
Trông giống như một vấn đề phù hợp tối đa trên biểu đồ hai bên. –