Cây khung Hamilton
Đề bài
Mô tả
Có thành phố. Giữa mỗi cặp thành phố đều có một con đường hai chiều, nên tổng cộng có con đường.
Ban đầu, đi qua mỗi con đường mất đúng giây. Sau đó, người ta chọn ra một cây khung của mạng lưới, tức là một tập hợp gồm con đường sao cho từ thành phố bất kỳ có thể đi tới mọi thành phố khác chỉ bằng các con đường trong tập này. Với mỗi con đường thuộc cây khung, thời gian đi qua nó được đổi từ thành giây (lưu ý không nhất thiết nhỏ hơn ).
Bạn muốn đi thăm tất cả các thành phố sao cho tổng thời gian là nhỏ nhất. Hành trình bắt đầu ở một thành phố bất kỳ, kết thúc ở một thành phố bất kỳ, và mỗi thành phố được thăm đúng một lần. Hãy tìm tổng thời gian nhỏ nhất của một hành trình như vậy.
Dữ liệu vào
- Dòng đầu chứa ba số nguyên , , .
- dòng tiếp theo, dòng thứ chứa hai số nguyên và là hai thành phố được nối bởi con đường thứ của cây khung.
Dữ liệu đảm bảo các con đường này tạo thành một cây khung.
Dữ liệu ra
In ra một số nguyên duy nhất: tổng thời gian nhỏ nhất cần bỏ ra để thăm tất cả các thành phố, mỗi thành phố đúng một lần.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 5 2 3 1 2 1 3 3 4 5 3 |
9 | Đường của cây khung có giá , các đường khác giá . Có thể chọn hành trình rồi : ba cạnh cây (giá ) và một cạnh ngoài cây (giá ), tổng . |
| 5 3 2 1 2 1 3 3 4 5 3 |
8 | Cùng cây khung nhưng cạnh cây giá , cạnh ngoài giá . Vì cây không phải hình sao nên tồn tại hành trình chỉ dùng cạnh ngoài cây, tổng . |
Bình luận