Số Bước Để Đến V
Xem dưới dạng PDF
Gửi bài giải
Điểm:
20
Giới hạn thời gian:
1.5s
Giới hạn bộ nhớ:
256M
đầu vào:
stdin
Đầu ra:
stdout
Tác giả:
Kiểu bài tập
Cho đồ thị hàm số gồm \(N\) đỉnh được đánh số từ \(0\) đến \(N-1\). Mỗi đỉnh \(i\) có đúng một cung đi ra hướng tới \(next[i]\).
Bạn cần xử lý \(Q\) truy vấn: Cho hai đỉnh \(U\) và \(V\), tìm số bước đi ít nhất để đi từ \(U\) tới \(V\). Nếu \(V\) không thể đi tới được từ \(U\), in ra -1.
Định dạng đầu vào
- Dòng đầu chứa hai số nguyên dương \(N\) và \(Q\) (\(1 \le N, Q \le 10^5\)).
- Dòng hai chứa \(N\) số nguyên đại diện cho mảng \(next\) (\(0 \le next[i] < N\)).
- \(Q\) dòng tiếp theo, mỗi dòng chứa hai số nguyên \(U\) và \(V\) (\(0 \le U, V < N\)).
Định dạng đầu ra
- Với mỗi truy vấn, in ra số bước đi ít nhất hoặc
-1trên một dòng.
Ràng buộc & Subtasks
- Subtask 1 (30% số điểm): \(N, Q \le 1000\).
- Subtask 2 (70% số điểm): \(N, Q \le 10^5\).
Ví dụ
Input:
6 4
1 2 3 1 5 4
0 3
3 0
4 5
5 0
Output:
3
-1
1
-1
Giải thích:
- Cung đồ thị: \(0 \to 1 \to 2 \to 3 \to 1\) và \(4 \to 5 \to 4\).
- Truy vấn 1 (\(0 \to 3\)): Đi qua \(0 \to 1 \to 2 \to 3\) (3 bước).
- Truy vấn 2 (\(3 \to 0\)): Không thể đi ngược từ chu kỳ về 0 \(\to\)
-1. - Truy vấn 3 (\(4 \to 5\)): Đi qua \(4 \to 5\) (1 bước).
- Truy vấn 4 (\(5 \to 0\)): Hai đỉnh nằm ở hai thành phần liên thông khác nhau \(\to\)
-1.
Nhận xét