Nâng cấp đường
Đề bài
Mô tả
Một đất nước có thành phố và con đường hai chiều, từ bất kỳ thành phố nào cũng có thể đi đến mọi thành phố khác chỉ bằng cách di chuyển dọc theo các con đường (nói cách khác, hệ thống đường tạo thành một cây). Các thành phố được đánh số từ đến .
Ban đầu mọi con đường đều xấu, nhưng chính phủ muốn nâng cấp một số con đường. Người dân sẽ hài lòng nếu, với thủ đô đặt tại thành phố , đường đi từ đến mọi thành phố khác đi qua nhiều nhất một con đường xấu.
Với mỗi thành phố có thể là thủ đô, hãy đếm số cách nâng cấp một tập con các con đường sao cho điều kiện trên được thỏa mãn. Vì kết quả có thể rất lớn, hãy in ra phần dư của nó khi chia cho .
Dữ liệu vào
- Dòng đầu chứa số nguyên , số thành phố.
- Dòng thứ hai chứa số nguyên dương (), mô tả các con đường: nghĩa là có một con đường nối thành phố với thành phố .
Dữ liệu ra
In ra số nguyên , trong đó là số cách nâng cấp cần tìm khi thủ đô đặt tại thành phố , lấy phần dư cho .
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 1 1 |
4 3 3 | Cây có gốc là các cạnh và . Với thủ đô tại , mỗi cạnh có thể tốt hoặc xấu tùy ý: cách. Với thủ đô tại , đường tới đi qua hai cạnh nên tối đa một cạnh được xấu: cách. |
| 5 1 2 3 4 |
5 8 9 8 5 | Cây là một đường thẳng . Khi thủ đô ở đầu mút (thành phố hoặc ) có cách; ở giữa (thành phố ) có cách. |
Bình luận