[Buổi 29][Dijkstra][ADV] Bài 1: Đường đi rẻ nhất, ít chặng nhất
Đường đi rẻ nhất, ít chặng nhất
Bối cảnh và bài toán
Một hệ thống định tuyến ưu tiên trước hết tổng chi phí thấp nhất; nếu có nhiều tuyến cùng chi phí, tuyến có ít cạnh hơn được ưu tiên.
Yêu cầu
Tìm cặp (chi phí tối thiểu, số cạnh ít nhất trong các đường có chi phí tối thiểu) từ s tới t.
Input
Dòng đầu n, m, s, t; tiếp theo m cạnh có hướng u, v, w.
Output
In hai số cost edges, hoặc -1 nếu không thể tới t.
Ràng buộc
2 <= n <= 2*10^50 <= m <= 3*10^50 <= w <= 10^9## Chấm điểm | Subtask | Điểm | Điều kiện | Official tests | |---|---:|---|---| | S1 | 40 | n <= 200, m <= 500 (nếu có m) | 01–08 | | S2 | 60 | Không có ràng buộc bổ sung | 09–20 |
Ví dụ 1
Input
4 5 1 4
1 2 2
2 4 3
1 3 1
3 2 1
3 4 4
Output
5 2
Giải thích. Trạng thái được so theo (tổng chi phí, số cạnh), nên tiêu chí phụ chỉ dùng khi chi phí bằng nhau.
Ví dụ 2
Input
3 1 1 3
1 2 1
Output
-1
Giải thích. Trạng thái được so theo (tổng chi phí, số cạnh), nên tiêu chí phụ chỉ dùng khi chi phí bằng nhau.
Thông tin bài tập
| Thuộc tính | Giá trị |
|---|---|
| Mã bài | DSA-M09-B29-ADV01 |
| Buổi | B29 |
| Loại bài | ADVANCED |
| Mức độ khó | Khó (Hard) |
| Thời gian làm bài khuyến nghị | 50 phút |
| Time limit | 2 giây |
| Memory limit | 256 MB |
| Tổng điểm | 100 |
| Chuẩn ngôn ngữ tham chiếu | C++11 trở lên |
Nguồn: Phỏng theo / Adapted from CSES Investigation. Bản FULLHOUSE DEV đã biên tập lại bối cảnh/format theo phạm vi khóa học.
Comments