Tổ tiên chung gần nhất (LCA) trên cây bằng Binary Lifting
Hệ thống cây phân cấp bài giảng và chủ đề tại AI Empire Academy gồm N nút được đánh số từ 1 đến N, trong đó nút 1 là nút gốc (Root). Cây có N-1 cạnh nối giữa các nút.
Tiến độ của tôi ở bài này
Điểm được lưu vào tài khoản sau khi chấm bài.
Đang tải điểm của bạn…
Kiến thức và chủ đề
Kiến thức tiên quyết: tree representation, dfs, binary lifting.
Nội dung đề bài
Mục tiêu kiến thức
- Hiểu định nghĩa Tổ tiên chung gần nhất (Lowest Common Ancestor - LCA) của 2 nút u và v trên cây có gốc.
- Áp dụng kỹ thuật nhân đôi (Binary Lifting): Xây dựng bảng
up[k][u]là tổ tiên thứ 2k của nút u. - Trả lời mỗi truy vấn LCA trong thời gian O(log N).
Mô tả bài toán
Hệ thống cây phân cấp bài giảng và chủ đề tại AI Empire Academy gồm N nút được đánh số từ 1 đến N, trong đó nút 1 là nút gốc (Root). Cây có N-1 cạnh nối giữa các nút.
Hệ thống cần xử lý Q truy vấn, mỗi truy vấn gồm hai nút u và v. Hãy tìm nút Tổ tiên chung gần nhất (LCA) của u và v.
Quy ước nộp bài
- Chỉ cần viết một chương trình đọc
stdinvà in rastdout. Bài này không yêu cầu viết hàm. - Không dùng
coutđể in lời nhắc trước khi đọc dữ liệu. Lời nhắc sẽ lọt vàostdoutvà làm bài sai. - Chỉ in đúng nội dung ở mục Output. Không in thêm nhãn, dòng trống hay ký tự thừa.
- Output được so khớp từng ký tự, phân biệt chữ hoa/thường và dấu câu.
Input
- Dòng 1: Gồm 2 số nguyên N và Q (1 ≤ N, Q ≤ 2 · 105).
- N-1 dòng tiếp theo: Mỗi dòng gồm 2 số nguyên u, v (1 ≤ u, v ≤ N) mô tả một cạnh của cây.
- Q dòng tiếp theo: Mỗi dòng gồm 2 số nguyên u, v (1 ≤ u, v ≤ N) đại diện cho một truy vấn tìm LCA.
Output
- In ra Q dòng, mỗi dòng là số hiệu nút LCA tương ứng của mỗi truy vấn.
Ràng buộc
- 1 ≤ N, Q ≤ 2 · 105.
- Thời gian chạy: 1000ms.
- Bộ nhớ tối đa: 256MB.
Ví dụ 1
Input
5 3
1 2
1 3
2 4
2 5
4 5
4 3
1 5Output
2
1
1
*Giải thích:*
- LCA của 4 và 5 là nút 2 (cha trực tiếp của cả hai).
- LCA của 4 và 3 là nút 1.
- LCA của 1 và 5 là nút 1.Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.
Góp ý & báo lỗi bài tập
Đề bài chưa rõ, test có vấn đề hay bạn có ý tưởng giúp bài tốt hơn? Gửi cho đội ngũ AI Empire nhé — mỗi góp ý đều được đọc.
