Cây khung của k-cây
Đề bài
Mô tả
Một đồ thị vô hướng được xây dựng theo quy tắc sau:
- Ban đầu đồ thị là một clique (đồ thị đầy đủ) gồm đỉnh, đánh số .
- Sau đó lần lượt thêm các đỉnh . Khi thêm đỉnh , ta chọn đỉnh đã có sao cho chúng đôi một kề nhau (tức là tạo thành một clique kích thước ), rồi nối với cả đỉnh đó.
Hãy đếm số cây khung của đồ thị thu được, lấy phần dư khi chia cho .
Dữ liệu vào
- Dòng đầu chứa hai số nguyên và .
- dòng tiếp theo mô tả các đỉnh theo thứ tự. Dòng thứ chứa số nguyên phân biệt (không nhất thiết theo thứ tự tăng dần), là chỉ số của đỉnh mà đỉnh được nối tới; mọi chỉ số đều nhỏ hơn . Dữ liệu đảm bảo đỉnh này đôi một kề nhau tại thời điểm đỉnh được thêm vào.
Khi thì không có dòng nào tiếp theo.
Dữ liệu ra
Một số nguyên duy nhất: số cây khung của đồ thị, lấy phần dư khi chia cho .
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 2 1 2 |
3 | Clique ban đầu là cạnh , đỉnh nối với cả và , nên đồ thị là tam giác. Bỏ đi một cạnh bất kỳ trong ba cạnh ta được một cây khung, vậy có cây khung. |
| 4 3 1 2 3 |
16 | Clique ban đầu là tam giác , đỉnh nối với cả ba đỉnh, nên đồ thị là . Số cây khung của là . |
| 3 3 | 3 | Ở đây nên không có đỉnh nào được thêm vào: đồ thị chính là clique , có cây khung. |
Bình luận