Untitled

 avatar
user_5379400
plain_text
a year ago
986 B
16
Indexable
Bài này giống bài clean robot
Mình cần xuất phát từ 1, đi qua k đỉnh cho trước và trở về 1 với chi phí nhỏ nhất
1 đường đi hợp lệ sẽ luôn đi qua k đỉnh theo 1 thứ tự nhất định
Ví dụ: có 8 đỉnh và mình cần đi qua đỉnh 3, 5, 6
1 -> 7 -> 8 -> 3 -> 6 -> 2 -> 5 (đi theo thứ tự 3 6 5)
Như vậy sẽ có tổng cộng k! hoán vị các cách đi, với mỗi hoãn vị, mình sẽ tìm chi phí nhỏ nhất nếu đi theo thứ tự như vậy.
Kết quả sẽ là min của tất cả hoán vị
Để làm dc điều này, khác với bài robot, mình cần tính trước đường đi ngắn nhất giữa các đỉnh, 
dijkstra từ các đỉnh cần đi qua đến tất cả đỉnh khác (do đồ thị có trọng số)
Sau đó backtrack, sinh hoán vị, ví dụ như trên hoán vị là 
3 6 5, sẽ là đường đi ngắn nhất gọi là D, D(1 -> 3) + D(3 -> 6) + D(6 -> 5) + D(5 -> 1) 
Editor is loading...
Leave a Comment