Khoảng cách hai làng

Xem dưới dạng PDF

Gửi bài giải


Điểm: 100
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
đầu vào: stdin
Đầu ra: stdout

Tác giả:
Kiểu bài tập

Tèo là một nhà thám hiểm muốn tính khoảng cách giữa hai làng trên bản đồ. Vương quốc có \(N\) làng được nối với nhau bởi \(N-1\) con đường, tạo thành một cấu trúc cây. Khoảng cách giữa hai làng được định nghĩa là số lượng con đường cần đi qua để di chuyển từ làng này đến làng kia.

Tèo có \(Q\) câu hỏi, mỗi câu hỏi yêu cầu tính khoảng cách giữa hai làng \(u\) và \(v\).

Định dạng đầu vào

  • Dòng đầu chứa số nguyên \(N\) và \(Q\) (\(N, Q \le 10^5\)).
  • \(N-1\) dòng tiếp theo, mỗi dòng chứa hai số nguyên \(u, v\) mô tả một cạnh.

Định dạng đầu ra

  • In ra kết quả của từng truy vấn trên một dòng.

Ví dụ

Input:

5 3
1 2
1 3
2 4
2 5
2 3

Output:

3
Dữ liệu vào
  • Dòng đầu tiên chứa hai số nguyên \(N\) và \(Q\) (\(1 \le N, Q \le 10^5\)).
  • \(N-1\) dòng tiếp theo, mỗi dòng chứa hai số nguyên \(u, v\) (\(1 \le u, v \le N\)).
  • \(Q\) dòng tiếp theo, mỗi dòng chứa hai số nguyên \(u, v\) (\(1 \le u, v \le N\)).
Kết quả ra
  • Với mỗi truy vấn, in ra khoảng cách giữa hai làng \(u\) và \(v\).
Ví dụ
Input
6 4
1 2
2 4
2 5
1 3
3 6
4 5
4 6
2 3
4 6
Output
2
4
3
5
Ràng buộc
  • Subtask 1 (20 điểm): \(N, Q \le 100\).
  • Subtask 2 (20 điểm): \(N, Q \le 5000\).
  • Subtask 3 (30 điểm): \(N, Q \le 10^5\), cây có dạng đường thẳng.
  • Subtask 4 (30 điểm): Không có ràng buộc gì thêm.

Nhận xét

Không có ý kiến tại thời điểm này.