Giả sử chúng ta có biểu đồ có trọng số G (V, E).Đường đi ngắn nhất khi không có cạnh đã cho
Đồ thị chứa N đỉnh (đánh số từ 0 đến N-1) và M hai chiều cạnh.
Mỗi cạnh (vi, vj) có postive khoảng cách d (tức là khoảng cách giữa hai đỉnh vivj là d)
Có atmost một cạnh giữa hai đỉnh và cũng có không tự lặp (ie.no cạnh kết nối một đỉnh để chính nó.)
Ngoài ra chúng tôi được cho S đỉnh nguồn và D đỉnh đích.
hãy Q được số truy vấn, mỗi truy vấn chứa một cạnh e (x, y).
Đối với mỗi truy vấn, chúng tôi phải tìm đường đi ngắn nhất từ nguồn S đến đích D, giả sử rằng cạnh (x, y) không có trong biểu đồ gốc. Nếu không có bất kỳ con đường tồn tại từ S đến D, sau đó chúng ta phải in số
ràng buộc cao 0 < = (N, Q, M) < = 25000
Làm thế nào để giải quyết việc này vấn đề hiệu quả?
Cho đến bây giờ những gì tôi đã làm được triển khai thực hiện thuật toán Dijakstra đơn giản .
Đối với mỗi truy vấn Q, mọi tôi gán (x, y) để Infinity và tìm Dijakstra con đường ngắn nhất.
Nhưng phương pháp này sẽ rất chậm như tổng thể phức tạp sẽ Q (thời gian phức tạp của con đường Dijastra Shortes) *
Ví dụ ::
N=6,M=9
S=0 ,D=5
(u,v,cost(u,v))
0 2 4
3 5 8
3 4 1
2 3 1
0 1 1
4 5 1
2 4 5
1 2 1
1 3 3
Total Queries =6
Query edge=(0,1) Answer=7
Query edge=(0,2) Answer=5
Query edge=(1,3) Answer=5
Query edge=(2,3) Answer=6
Query edge=(4,5) Answer=11
Query edge=(3,4) Answer=8
Bạn có thể giải thích cách người ta có thể tính toán bài toán cắt nhỏ 'rất dễ dàng'? – anukul