Nhân ma trận: Đếm số đường đi độ dài đúng K trên đồ thị có hướng
Cho đồ thị có hướng gồm N đỉnh (đánh số từ 0 đến N-1) và M cạnh có hướng.
Tiến độ của tôi ở bài này
Điểm và code bạn nộp được lưu vào tài khoản sau khi chấm bài.
Đang tải điểm của bạn…
Kiến thức và chủ đề
Kiến thức tiên quyết: matrix-multiplication, binary-exponentiation.
Nội dung đề bài
Mô tả bài toán
Cho đồ thị có hướng gồm N đỉnh (đánh số từ 0 đến N-1) và M cạnh có hướng.
Cho một số nguyên dương K và hai đỉnh S, T.
Yêu cầu: Hãy đếm số lượng đường đi có hướng bắt đầu tại S và kết thúc tại T có độ dài đúng bằng K (tức là đi qua đúng K cạnh, các đỉnh và cạnh có thể đi qua lặp lại nhiều lần). Kết quả được lấy dư theo modulo 109 + 7.
Input
- Dòng đầu gồm bốn số nguyên N, M, K, S, T (1 ≤ N ≤ 100, 0 ≤ M ≤ 10 000, 1 ≤ K ≤ 1018, 0 ≤ S, T < N).
- M dòng tiếp theo, mỗi dòng gồm hai số nguyên u, v mô tả một cạnh có hướng từ u đến v (0 ≤ u, v < N).
Input:
3 4 3 0 2
0 1
1 2
2 0
0 2
Output:
1Output
- In ra một số nguyên duy nhất là số đường đi thỏa mãn theo modulo 109 + 7.
Quy ước nộp bài
- Chỉ cần viết một chương trình đọc stdin và in ra stdout. Bài này không yêu cầu viết hàm.
- Không dùng cout để in lời nhắc trước khi đọc dữ liệu. Lời nhắc sẽ lọt vào stdout và làm bài sai.
- Chỉ in đúng nội dung ở mục Output. Không in thêm nhãn, dòng trống hay ký tự thừa.
- Output được so khớp từng ký tự, phân biệt chữ hoa/thường và dấu câu.
Input
- Các tham số truyền vào hàm/lớp solution hoặc dữ liệu đầu vào theo định dạng mô tả.
Output
- Kết quả trả về của hàm/lớp solution hoặc dữ liệu in ra màn hình theo đúng đặc tả.
Ràng buộc
- Thời gian chạy tối đa: 1000ms.
- Giới hạn bộ nhớ: 256MB.
- Dữ liệu đầu vào tuân thủ đúng định dạng và miền giá trị được mô tả.
Ví dụ 1
Thành công / Đáp ứng đầy đủ ràng buộcGợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.
Góp ý & báo lỗi bài tập
Đề bài chưa rõ, test có vấn đề hay bạn có ý tưởng giúp bài tốt hơn? Gửi cho đội ngũ AI Empire nhé — mỗi góp ý đều được đọc.
