Đường đi ngắn nhất nhỏ nhất
Đề bài
Mô tả
Cho một đồ thị vô hướng gồm đỉnh đánh số từ đến và cạnh. Đồ thị có thể có khuyên và nhiều cạnh nối cùng một cặp đỉnh.
Trong tất cả các đường đi từ đỉnh tới đỉnh đi qua ít cạnh nhất, hãy tìm đường đi có dãy đỉnh nhỏ nhất theo thứ tự từ điển.
Dãy đỉnh nhỏ hơn dãy (cùng độ dài) theo thứ tự từ điển nếu tại vị trí đầu tiên mà hai dãy khác nhau, ta có .
Dữ liệu vào
- Dòng đầu tiên chứa hai số nguyên và .
- dòng tiếp theo, mỗi dòng chứa hai số nguyên và cho biết có một cạnh nối và .
Dữ liệu ra
- Nếu không có đường đi từ tới , in ra một số .
- Ngược lại, dòng thứ nhất in ra là số cạnh trên đường đi ngắn nhất. Dòng thứ hai in ra đỉnh của đường đi cần tìm, bắt đầu bằng và kết thúc bằng , cách nhau bởi một dấu cách.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 7 7 1 3 1 2 2 4 3 5 2 6 5 7 6 7 |
3 1 2 6 7 |
Có hai đường ngắn nhất: và . Đường thứ nhất nhỏ hơn vì . Đỉnh kề với nhưng không dẫn tới . |
| 5 5 1 4 4 5 1 2 2 3 3 5 |
2 1 4 5 |
Đường bắt đầu bằng đỉnh nhỏ hơn nhưng dài hơn, nên không được tính. |
Bình luận