Đếm Đường Đi Trên Bản Đồ Một Chiều

Xem dưới dạng PDF

Gửi bài giải


Điểm: 15
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

Thà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

Không có ý kiến tại thời điểm này.