Đường đi nhỏ nhất
Đề bài
Mô tả
Cho một đồ thị vô hướng liên thông có trọng số gồm đỉnh và cạnh. Đồ thị không có khuyên và không có hai cạnh nối cùng một cặp đỉnh.
Trọng số của một đường đi gồm cạnh mang chỉ số được định nghĩa là
với là trọng số của cạnh thứ trong đồ thị. Nói cách khác, ta lấy tổng trọng số các cạnh trên đường đi, bỏ đi một lần cạnh nặng nhất và cộng thêm một lần cạnh nhẹ nhất.
Đường đi ở đây là một dãy cạnh nối tiếp nhau bất kỳ: một đỉnh hoặc một cạnh được phép xuất hiện nhiều lần. Nếu một cạnh được đi qua nhiều lần thì mỗi lần đi qua được tính là một phần tử riêng của dãy .
Với mỗi (), hãy tìm trọng số nhỏ nhất của một đường đi từ đỉnh đến đỉnh .
Dữ liệu vào
- Dòng đầu chứa hai số nguyên và là số đỉnh và số cạnh của đồ thị.
- dòng tiếp theo, dòng thứ chứa ba số nguyên , , là hai đầu mút và trọng số của cạnh thứ .
Dữ liệu ra
In ra số nguyên: trọng số nhỏ nhất của đường đi từ đỉnh đến đỉnh , lần lượt với .
Ràng buộc
- và
- Đồ thị liên thông và không có hai cạnh nối cùng một cặp đỉnh.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 5 4 5 3 4 2 1 1 3 2 2 2 4 2 |
1 2 2 4 | Đồ thị là một cây. Tới đỉnh chỉ có một đường đi đơn với các trọng số : tổng là , cạnh nặng nhất là , cạnh nhẹ nhất là , nên trọng số bằng . Tương tự, tới đỉnh dùng đường đi một cạnh cho . |
| 6 8 3 1 1 3 6 2 5 4 2 4 2 2 6 1 1 5 2 1 3 2 3 1 5 4 |
2 1 4 3 1 | Tới đỉnh , đi thẳng bằng cạnh trọng số cho kết quả , nhưng đường dài hơn với trọng số lại tốt hơn: . Đường đi ngắn nhất theo nghĩa thông thường không nhất thiết là đáp án. |
| 7 10 7 5 5 2 3 3 4 7 1 5 3 6 2 7 6 6 2 6 3 7 6 4 2 1 3 1 4 1 7 4 |
3 4 2 7 7 3 | Tới đỉnh : đường đi có trọng số , cho . |
Bình luận