Đếm Đường Đi Trên Bản Đồ Một Chiều
Xem dưới dạng PDFThành phố X có \(N\) địa điểm được đánh số từ \(1\) đến \(N\). Giữa các địa điểm có \(M\) con đường một chiều, mỗi con đường nối từ một địa điểm \(u\) đến một địa điểm \(v\) và chỉ được đi theo chiều đó.
Theo quy hoạch đô thị mới, thành phố được phân chia thành các khu vực rất rõ ràng, mỗi con đường đều nối từ một khu phía trước sang khu phía sau, vì vậy bản đồ thành phố đảm bảo không có vòng khép kín nào theo hướng đi của các con đường.
Bạn của An là Bình đang ở địa điểm \(S\) và muốn đến thăm Tý ở địa điểm \(T\). Bình tò mò hỏi An rằng: nếu luôn đi đúng theo chiều của các con đường một chiều, thì có tất cả bao nhiêu cách đi từ \(S\) đến \(T\)? Hai cách đi khác nhau nếu chuỗi địa điểm dừng dọc đường khác nhau.
Hãy giúp An tính đáp án. Vì số cách có thể rất lớn, hãy in ra phần dư khi chia cho \(10^9 + 7\).
Định dạng đầu vào
- Dòng đầu tiên chứa hai số nguyên \(N\) và \(M\) (\(1 \le N \le 10^5\), \(0 \le M \le 2 \cdot 10^5\)).
- \(M\) dòng tiếp theo, mỗi dòng chứa hai số nguyên \(u\) và \(v\) mô tả một con đường một chiều từ \(u\) tới \(v\) (\(1 \le u, v \le N\), \(u \ne v\)).
- Dòng cuối cùng chứa hai số nguyên \(S\) và \(T\) (\(1 \le S, T \le N\)).
Định dạng đầu ra
- Một số nguyên duy nhất là số cách đi từ \(S\) đến \(T\) lấy modulo \(10^9 + 7\).
Ví dụ
Input:
5 5
1 2
1 3
2 4
3 4
4 5
1 5
Output:
2
Ràng buộc
- \(1 \le N \le 10^5\)
- \(0 \le M \le 2 \cdot 10^5\)
- Bản đồ luôn đảm bảo không tạo vòng khép kín theo chiều đi của các con đường.
- Kết quả in theo modulo \(10^9 + 7\).
Nhận xét