Cầu vòng (Contest Practice VNOI 2021 Round 7)

Xem PDF




Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Prolog, Pypy, Pypy 3, Ruby, Rust, Scala, Swift
Điểm: 1800 Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Cho một cây gồm \(n\) đỉnh, bạn cần phải tô màu \(n − 1\) cạnh của cây bằng các màu từ \(1\) đến \(k\) sao cho:

  • Mọi đường đi độ dài \(2\) đều có màu cầu vồng.
  • Mọi đường đi độ dài \(3\) đều có màu cầu vồng.

Một đường đi có màu cầu vồng khi và chỉ khi tất cả các cạnh nằm trên đường đi có màu đôi một khác nhau.

Yêu cầu: Hãy đếm số cách tô màu cho cây.

Input

  • Dòng đầu tiên chứa hai số nguyên dương \(n\)\(k\) \((1 \leq n \leq 500, 1 \leq k \leq 10^{9})\).
  • \(n − 1\) dòng tiếp theo, mỗi dòng chứa hai số nguyên dương \(u\)\(v\) thể hiện có cạnh nối giữa hai đỉnh \(u\)\(v\).

Output

  • Ghi ra số cách tô màu sau khi chia lấy dư cho \(10^{9} + 9\).

Scoring

  • Subtask \(1\) (\(10\%\) số điểm): \(1 \leq n, k \leq 8\).
  • Subtask \(2\) (\(10\%\) số điểm): \(n = 2^{x} − 1\) và cây có dạng cây nhị phân đầy đủ.
  • Subtask \(3\) (\(20\%\) số điểm): \(k \leq 10\).
  • Subtask \(4\) (\(20\%\) số điểm): các nút có bậc không quá \(3\).
  • Subtask \(5\) (\(30\%\) số điểm): \(n \leq 50\).
  • Subtask \(6\) (\(10\%\) số điểm): không có ràng buộc gì thêm.

Example

Test 1

Input
4 10
1 2
1 3
1 4
Output
720

Test 2

Input
5 3
1 2
2 3
3 4
4 5
Output
6

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.