Nội dung Bài tập
Mã:
GRAPH_DIJKSTRA
Tên:
Đường đi ngắn nhất trên đồ thị có ràng buộc thời g
Dạng thi:
oi
Thang điểm:
10 điểm
Giới hạn thời gian:
1 giây
Giới hạn bộ nhớ:
256 MB
Được tạo bởi:
4801103088

Cho một đồ thị có hướng gồm n đỉnh đánh số từ 0 đến n-1 và m cạnh. Mỗi cạnh (u, v) có một trọng số w biểu thị thời gian di chuyển từ đỉnh u đến đỉnh v.

Tồn tại một số nguyên dương k. Tại bất kỳ thời điểm t nào (ngoài trừ thời điểm t = 0), nếu t là bội số của k (tức là t % k = 0), thì tất cả các đỉnh đều không thể đi qua.

Cho hai đỉnh x và y. Nhiệm vụ của bạn là tìm đường đi ngắn nhất từ đỉnh x đến đỉnh y, sao cho không đi qua bất kỳ đỉnh nào vào các thời điểm bị cấm. Lưu ý: Bạn phải di chuyển liên tục và không được dừng lại ở bất kỳ đỉnh nào để đợi.

Input:

  • Dòng đầu tiên: bốn số nguyên n, m, k, x, y (1 ≤ n ≤ 10^5, 1 ≤ m ≤ 10^5, 1 ≤ k ≤ 100, 0 ≤ x, y < n)
  • M dòng tiếp theo: mỗi dòng gồm ba số nguyên u, v, w (0 ≤ u, v < n, 1 ≤ w ≤ 10^5), biểu thị một cạnh từ u đến v với trọng số w

Output:

  • In ra -1 nếu không thể đi từ đỉnh x đến đỉnh y theo yêu cầu đề bài
  • Ngược lại, in ra thời gian ngắn nhất để đi từ đỉnh x đến đỉnh y

Testcase: 

Input:

4 4 4 0 3

0 1 2

1 2 3

2 3 2

0 2 4

Output:

7

Giải thích: Đường đi có thời gian ngắn nhất trong trường hợp này là 0 -> 2 -> 3 với tổng thời gian là 6 tuy nhiên ở vị trí từ 0 -> 2 t % k = 4 % 4 = 0 vi phạm yêu cầu đề bài nên không được phép đi đường này. Vì thế đường đi hợp lệ là 0 -> 1 -> 2 -> 3 có tổng thời gian là 2 + 3 + 2 = 7.


    Quảng cáo
       Ngôn ngữ : 

       Theme : 
Mời bạn soạn code



		



      Ai có thể xem bài này : 

Thông tin



Phần thảo luận