Đếm đồ thị có hướng
Đề bài
Mô tả
Cho một đồ thị có hướng, không trọng số gồm đỉnh được đánh số từ đến và cung. Mọi cung của đồ thị đều đi từ đỉnh tới đỉnh với .
Hãy đếm số cách thêm vào đồ thị một số lượng tuỳ ý (có thể bằng ) cung sao cho đồ thị thu được thoả mãn đồng thời các điều kiện sau:
- Từ đỉnh bất kỳ () đều đi đến được tất cả các đỉnh .
- Mọi cung đi từ đỉnh tới đỉnh đều thoả .
- Giữa hai đỉnh bất kỳ có nhiều nhất một cung.
- Với mọi cặp đỉnh () mà , đường đi ngắn nhất từ đến gồm đúng cung.
- Với mọi cặp đỉnh () mà , đường đi ngắn nhất từ đến gồm cung hoặc cung.
Hai cách thêm cung được coi là khác nhau nếu tồn tại cặp đỉnh () mà đồ thị thu được theo cách thứ nhất có cung từ đến , còn đồ thị thu được theo cách thứ hai thì không.
Kết quả có thể rất lớn, hãy in ra phần dư của nó khi chia cho .
Dữ liệu vào
- Dòng đầu chứa ba số nguyên , , .
- dòng tiếp theo, dòng thứ chứa hai số nguyên , mô tả một cung có hướng đi từ đỉnh tới đỉnh trong đồ thị ban đầu.
Dữ liệu bảo đảm giữa mỗi cặp đỉnh có nhiều nhất một cung, các cung được cho theo thứ tự không giảm, và với cùng một thì các cung được cho theo thứ tự tăng dần.
Dữ liệu ra
In ra một số nguyên duy nhất là số cách thêm cung, lấy phần dư khi chia cho .
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 7 8 2 1 2 2 3 3 4 3 6 4 5 4 7 5 6 6 7 |
2 | Có hai cách: không thêm gì, hoặc thêm đúng một cung từ đỉnh tới đỉnh . |
| 7 0 2 | 12 | Đồ thị ban đầu rỗng nên mọi cung đều phải được thêm vào. |
| 7 2 1 1 3 3 5 |
0 | Với , đi theo cho đường đi độ dài , trong khi và . Không cách thêm cung nào cứu được điều kiện . |
| 7 1 3 1 5 |
4 | Ngoài cung đã có, mỗi cung trong hai cung và có thể có hoặc không, cho cách. |
Bình luận