Cho một cây gồm \(n\) đỉnh, đánh số từ \(1\) đến \(n\).
Một đường đi đơn trên cây là một dãy các đỉnh phân biệt \(v_0, v_1, \ldots, v_m\) sao cho giữa \(v_{i-1}\) và \(v_i\) có cạnh nối trực tiếp với mọi \(i\) từ \(1\) đến \(m\). Độ dài của đường đi này bằng \(m\) (số cạnh đi qua).
Hãy đếm số lượng đường đi đơn trên cây có độ dài đúng bằng \(k\). Hai đường đi được coi là khác nhau nếu tập (hoặc thứ tự) các đỉnh của chúng khác nhau; nói cách khác, mỗi cặp đỉnh \((u, v)\) phân biệt mà khoảng cách giữa \(u\) và \(v\) trên cây đúng bằng \(k\) được tính là một đường đi.
Input
-
Dòng đầu tiên gồm hai số nguyên \(n, k\) (\(1 \le n \le 10^5\), \(1 \le k \le 100\)).
-
\(n - 1\) dòng tiếp theo, mỗi dòng gồm hai số nguyên \(u, v\) (\(1 \le u, v \le n\)) thể hiện có cạnh nối giữa đỉnh \(u\) và đỉnh \(v\).
Dữ liệu đảm bảo các cạnh đã cho tạo thành một cây.
Output
In ra một số nguyên duy nhất là số lượng đường đi đơn trên cây có độ dài đúng bằng \(k\).
Example
Input:
5 2
1 2
2 3
1 4
4 5
Output:
3
Note
Cây trong ví dụ có các cạnh \((1,2), (2,3), (1,4), (4,5)\).
Các đường đi có độ dài đúng bằng \(2\) là: \(3 \to 2 \to 1\), \(2 \to 1 \to 4\), và \(1 \to 4 \to 5\). Vậy có tất cả \(3\) đường đi thỏa mãn.
Bình luận
Đăng nhập để bình luận
Chưa có bình luận nào.