#853. DISTK - Khoảng cách K trên cây

Bộ nhớ: 256 MiB Thời gian: 1000 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: So sánh văn bản
Đưa lên bởi: Trùm CUỐI

Đề bài

Cho một cây có N đỉnh, các đỉnh được đánh số từ 1 đến N , đỉnh số 1 là gốc, và một số K . Hãy đếm xem có bao nhiêu cặp đỉnh (u,v) mà có khoảng cách đúng bằng K . Khoảng cách được tính bằng số cạnh. Chú ý: cặp (u,v) và cặp (v, u) là như nhau.

Dữ liệu vào:

  • Dòng đầu tiên có hai số N K\ (1\le N \le 50000, 1 \le K \le 200) ;
  • Dòng tiếp theo có N số p_1, p_2, \ldots, p_N thể hiện có đường đi từ đỉnh i đến p_i với 0\le p_i \le N ( p_1=0 vì đỉnh 1 là gốc cây).

Dữ liệu ra:

  • Một số duy nhất là số cặp đỉnh có khoảng cách bằng K .

Ví dụ:

Dữ liệu vào:

5 2
0 1 2 3 2

Dữ liệu ra:

4