Bài 4: Giao thông thông minh (THT-B Hòa Cường 2026)

Xem dạng PDF

Gửi bài giải

Điểm: 25,00
Giới hạn thời gian: 2.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Python

Một thành phố đang triển khai hệ thống giao thông thông minh. Một số tuyến đường được đánh dấu là đường ưu tiên (VIP). Một xe cứu thương cần đi từ nút 1 đến nút N, nhưng do quy định, xe chỉ được đi qua tối đa K tuyến VIP đó (đường đi ở dạng vô hướng).

Yêu cầu: Tìm quãng đường ngắn nhất từ 1 đến N sao cho số tuyến VIP sử dụng không vượt quá K. Nếu không tồn tại đường đi thỏa mãn, in ra -1.

Dữ liệu vào: Cho tệp Input.txt với dữ liệu đầu vào mẫu đã cho bên dưới. - Dòng 1: Ba số nguyên N, M, K (1 ≤ N ≤ 105, 1≤ M ≤ 2 x 105, 0 ≤ K ≤ 20, 1 ≤ W ≤ 109) - M dòng tiếp theo, mỗi dòng gồm 4 số nguyên U, V, W, T (U, V: hai đỉnh của cạnh; W: trọng số cạnh; T = 1 nếu là cạnh VIP, T = 0 nếu là cạnh thường.

Dữ liệu ra: Ghi kết quả ra tệp Output.txt là độ dài đường đi ngắn nhất thỏa mãn yêu cầu. Nếu không tồn tại, in ra -1.

Ví dụ:

Input 1:

4 5 1 1 2 5 0 2 3 5 1 1 3 15 0 3 4 5 0 2 4 20 0

Output 1:

15

Input 2:

3 2 0 1 2 1 1 2 3 1 1

Output 2:

-1

Giải thích test 01: Các đường đi:

1 → 2 → 3 → 4

Trọng số: 5 + 5 + 5 = 15 VIP: 1 cạnh (2→3)

1 → 3 → 4

Trọng số: 15 + 5 = 20 VIP: 0

1 → 2 → 4

Trọng số: 5 + 20 = 25


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.