Vẽ cây trên đường tròn
Đề bài
Mô tả
Cho một cây (đồ thị vô hướng liên thông gồm đỉnh và cạnh), các đỉnh được đánh số từ đến .
Ta muốn vẽ cây này lên một đường tròn: đặt đỉnh của cây vào điểm phân biệt trên đường tròn, rồi nối các cạnh bằng đoạn thẳng sao cho không có hai cạnh nào cắt nhau. Hai cạnh được coi là không cắt nhau nếu chúng không có điểm chung, hoặc điểm chung duy nhất là một đầu mút chung của cả hai cạnh.
Việc đặt các đỉnh lên đường tròn được mô tả bằng một hoán vị của : đỉnh của cây được đặt vào điểm thứ trên đường tròn (các điểm được đánh số theo thứ tự dọc đường tròn).
Hãy đếm số hoán vị sao cho cách vẽ tương ứng thỏa mãn điều kiện không có hai cạnh cắt nhau, kết quả lấy theo modulo .
Kết quả không phụ thuộc vào việc chọn cụ thể điểm nào trên đường tròn.
Dữ liệu vào
- Dòng đầu chứa số nguyên : số đỉnh của cây.
- dòng tiếp theo, mỗi dòng chứa hai số nguyên và cho biết có một cạnh nối đỉnh và đỉnh .
Dữ liệu đảm bảo các cạnh tạo thành một cây.
Dữ liệu ra
Một số nguyên duy nhất: số hoán vị hợp lệ, lấy theo modulo .
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 4 1 2 1 3 1 4 |
24 | Cây hình sao. Với hình sao, mọi hoán vị đều hợp lệ, nên kết quả là . |
| 4 1 2 1 3 2 4 |
16 | Có hoán vị hợp lệ. Một ví dụ hoán vị không hợp lệ khiến hai cạnh và cắt nhau. |
Bình luận