Cơ sở trượt tuyết
Đề bài
Mô tả
Một khu trượt tuyết đang được quy hoạch trên một khu đất lớn có ngã rẽ, đánh số từ đến . Ban đầu các ngã rẽ chưa được nối với nhau.
Trong quá trình thi công, con đường trượt hai chiều sẽ được xây lần lượt: đầu tiên là đường số , rồi đường số , và cứ thế tiếp tục. Đường thứ nối ngã rẽ với ngã rẽ . Giữa một cặp ngã rẽ có thể có nhiều hơn một con đường.
Một đường đua là một lộ trình thoả mãn đồng thời:
- Lộ trình khép kín, tức là bắt đầu và kết thúc tại cùng một ngã rẽ.
- Lộ trình chứa ít nhất một con đường.
- Lộ trình không đi qua con đường nào quá một lần, nhưng có thể đi qua một ngã rẽ nhiều lần.
Một cơ sở trượt tuyết là một tập khác rỗng các con đường, sao cho tập đó có thể chia thành một hoặc nhiều đường đua, mỗi con đường trong tập thuộc đúng một đường đua và mỗi đường đua chỉ dùng các con đường trong tập. Cơ sở trượt tuyết không nhất thiết phải liên thông.
Hai cơ sở trượt tuyết được xem là khác nhau nếu chúng gồm hai tập con đường khác nhau.
Sau khi xây xong mỗi con đường, hãy đếm số cách chọn một cơ sở trượt tuyết từ những con đường đã được xây.
Dữ liệu vào
- Dòng đầu chứa hai số nguyên và là số ngã rẽ và số con đường.
- dòng tiếp theo, dòng thứ chứa hai số nguyên và mô tả con đường thứ , theo đúng thứ tự chúng được xây.
Dữ liệu ra
In ra dòng: dòng thứ là số cách chọn cơ sở trượt tuyết sau khi xây xong con đường thứ , lấy phần dư khi chia cho .
Ràng buộc
- và
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 4 1 3 2 3 1 2 1 2 |
0 0 1 3 |
Sau hai con đường đầu chưa có lộ trình khép kín nào. Sau đường thứ ba, ba con đường tạo thành tam giác , cho đúng cách chọn. Sau đường thứ tư có cách: tam giác cũ; tam giác dùng con đường thứ hai; và tập gồm hai con đường song song giữa và , tạo thành lộ trình khép kín . |
| 4 5 1 2 2 3 3 4 4 1 1 3 |
0 0 0 1 3 |
Bốn con đường đầu tạo thành chu trình , cho cách chọn. Thêm đường ta có thêm hai tập nữa là và , tổng cộng cách. |
Bình luận