Đường đi trên đồ thị ước
Đề bài
Mô tả
Cho số nguyên dương . Xây dựng đồ thị vô hướng có trọng số như sau:
- Mỗi đỉnh là một ước của (kể cả và chính ).
- Hai đỉnh và (với ) được nối bằng một cạnh khi chia hết cho và là số nguyên tố.
- Trọng số cạnh nối và bằng số ước của mà không phải ước của .
Ví dụ, cạnh giữa và có trọng số , vì có các ước còn có các ước , nên có ước của không phải ước của — đó là .
Độ dài của một đường đi giữa hai đỉnh là tổng trọng số các cạnh trên đường đi đó (đường đi có thể đi qua một đỉnh nhiều lần; đường đi rỗng có độ dài ). Đường đi ngắn nhất giữa hai đỉnh là đường đi có độ dài nhỏ nhất.
Hai đường đi được coi là khác nhau nếu chúng có số cạnh khác nhau, hoặc tồn tại vị trí sao cho cạnh thứ của chúng khác nhau.
Có truy vấn, mỗi truy vấn cho hai đỉnh và — hãy đếm số đường đi ngắn nhất giữa và . Vì kết quả có thể lớn, in ra theo modulo .
Dữ liệu vào
- Dòng đầu chứa số nguyên .
- Dòng thứ hai chứa số nguyên — số truy vấn.
- dòng tiếp theo, mỗi dòng chứa hai số nguyên và . Bảo đảm chia hết cho cả và .
Dữ liệu ra
In ra dòng, dòng thứ là số đường đi ngắn nhất giữa và , theo modulo .
Ràng buộc
- và chia hết cho cả và
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 12 3 4 4 12 1 3 4 |
1 3 1 |
Truy vấn 1: , chỉ có đường đi rỗng độ dài . Truy vấn 2: có đường đi độ dài từ về : , , . Truy vấn 3: chỉ một đường đi độ dài là . |
| 1 1 1 1 |
1 | , đồ thị chỉ có một đỉnh; đường đi rỗng là duy nhất. |
| 18 4 1 18 2 9 6 6 18 1 |
3 1 1 3 |
. Truy vấn có thứ tự đi qua các số nguyên tố. Truy vấn qua chỉ có một đường. |
Bình luận