Đếm số đường đi
Nộp bài giải
Điểm:
7,00 (OI)
Giới hạn thời gian:
4.0s
Giới hạn bộ nhớ:
256M
Đầu vào:
stdin
Đầu ra:
stdout
Dạng bài
Ngôn ngữ cho phép
Assembly, C#, C++, D, Dart, Go, Groovy, Java, Javascript, Kotlin, Lua, Nim, ObjC, Pascal, Perl, PHP, Pike, Python, Ruby, Rust, Scratch, Typescript, Zig
Cho một đồ thị có hướng gồm đỉnh, đánh số từ đến . Đồ thị có thể chứa vòng lặp (cạnh đi từ một đỉnh tới chính nó) nhưng không có cạnh bội — với mọi cặp đỉnh có thứ tự , có nhiều nhất một cạnh từ tới .
Một đường đi từ tới là một dãy cạnh sao cho:
- Đỉnh là đầu của cạnh đầu tiên;
- Đỉnh là cuối của cạnh cuối cùng;
- Với mọi hai cạnh liền nhau, cạnh sau xuất phát từ đỉnh mà cạnh trước kết thúc.
Quy ước rằng dãy cạnh rỗng cũng là một đường đi từ tới .
Với mỗi đỉnh , hãy in ra một trong bốn giá trị:
- — nếu không có đường đi nào từ tới ;
- — nếu có đúng một đường đi từ tới ;
- — nếu số đường đi từ tới là hữu hạn và lớn hơn ;
- — nếu số đường đi từ tới là vô hạn.
Dữ liệu vào
- Dòng đầu chứa số nguyên () — số bộ test.
- Trước mỗi bộ test có một dòng trống.
- Dòng đầu của mỗi bộ test chứa hai số nguyên và (, ) — số đỉnh và số cạnh.
- dòng tiếp theo, mỗi dòng chứa hai số nguyên () — cạnh có hướng từ tới .
Tổng qua tất cả bộ test không vượt quá . Tổng qua tất cả bộ test không vượt quá .
Dữ liệu ra
Với mỗi bộ test, in ra một dòng chứa số nguyên, mỗi số thuộc tập — đáp án cho từng đỉnh từ tới .
Ràng buộc
- (theo nghĩa và , với tổng giới hạn mỗi loại)
- Đồ thị có thể chứa vòng lặp, nhưng không có cạnh bội.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 5 6 7 1 4 1 3 3 4 4 5 2 1 5 5 5 6 1 0 3 3 1 2 2 3 3 1 5 0 4 4 1 2 2 3 1 4 4 3 |
1 0 1 2 -1 -1 1 -1 -1 -1 1 0 0 0 0 1 1 2 1 |
Bộ test 1: tới đỉnh chỉ có đường đi rỗng; đỉnh không tới được; đỉnh có hai đường và ; đỉnh có vòng lặp nên số đường đi vô hạn; đỉnh kéo theo cũng vô hạn. Bộ test 3: cả ba đỉnh nằm trên cùng một chu trình chứa đỉnh , nên có vô hạn đường đi tới mỗi đỉnh. Bộ test 5: tới đỉnh có hai đường khác nhau qua và qua . |
| 1 1 1 1 1 |
-1 | Đỉnh có vòng lặp tự nó, do đó có vô hạn đường đi (đi qua vòng lặp tùy ý lần). |
Bình luận