Cây đường đi ngắn nhất nhỏ nhất
Đề bài
Mô tả
Cho một đồ thị vô hướng liên thông có trọng số với đỉnh và cạnh, cùng một đỉnh nguồn .
Một cây đường đi ngắn nhất xuất phát từ là một cây con của (gồm đúng đỉnh và một tập con các cạnh của ) sao cho với mọi đỉnh , khoảng cách từ đến trong cây bằng đúng khoảng cách ngắn nhất từ đến trong đồ thị ban đầu.
Trong tất cả các cây đường đi ngắn nhất xuất phát từ , hãy tìm cây có tổng trọng số các cạnh nhỏ nhất.
Dữ liệu vào
- Dòng đầu chứa hai số nguyên và : số đỉnh và số cạnh.
- dòng tiếp theo, mỗi dòng chứa ba số nguyên , , : một cạnh nối hai đỉnh và với trọng số (). Bảo đảm đồ thị liên thông và giữa hai đỉnh bất kỳ có tối đa một cạnh.
- Dòng cuối chứa số nguyên : đỉnh nguồn.
Dữ liệu ra
- Dòng đầu in tổng trọng số nhỏ nhất của các cạnh trong cây.
- Dòng thứ hai in chỉ số của các cạnh thuộc cây, cách nhau bởi dấu cách. Các cạnh được đánh số từ theo thứ tự xuất hiện trong dữ liệu vào. Có thể in các chỉ số theo thứ tự bất kỳ.
Nếu có nhiều đáp án, in ra một đáp án bất kỳ.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 3 1 2 1 2 3 1 1 3 2 3 |
2 1 2 |
Có hai cây đường đi ngắn nhất từ đỉnh 3. Cây gồm cạnh 1 và 3 có tổng trọng số 3, cây gồm cạnh 1 và 2 có tổng trọng số 2. Chọn cây thứ hai. |
| 4 4 1 2 1 2 3 1 3 4 1 4 1 2 4 |
4 4 2 3 |
Khoảng cách ngắn nhất từ 4 tới 1, 3, 2 lần lượt là 2, 1, 2. Cây gồm các cạnh 4, 2, 3 (tức 4-1, 2-3, 3-4) giữ nguyên mọi khoảng cách với tổng trọng số . Thứ tự các cạnh in ra là tùy ý. |
Bình luận