LOWEST COMMON ANCESTOR

(talca.*)

Trong một cây có gốc, tổ tiên chung của hai nút \(u,\ v\) là nút thấp nhất làm tổ tiên chung của hai nút \(u,\ v\); ký hiệu là \(lca(u,v)\).

Bạn được cho một cây gồm \(n\) nút. Hãy trả lời \(q\) truy vấn dạng \(r,\ u,\ v\); nghĩa là hãy tìm \(LCA(u,v)\) với gốc cây là nút \(r\)

Dữ liệu vào:

+ Dòng đầu tiên ghi số nguyên dương \(n\) (\(1 \leq n \leq 10^{5})\) cho biết số nút trên cây.

+ \(n - 1\) dòng tiếp theo mỗi dòng ghi hai số \(x,\ y\ (1 \leq x,\ y \leq n)\) cho biết một cạnh trên cây.

+ Dòng tiếp theo ghi số nguyên \(q\ (1 \leq q \leq 10^{5})\) cho biết số lượng truy vấn.

+ \(q\) dòng tiếp theo, mỗi dòng ghi 3 số \(r,\ u,\ v\) cho biết một truy vấn.

Kết quả:

+ Gồm \(q\) dòng, mỗi dòng trả lời cho một truy vấn tưng ứng trong Input.

Ví dụ:

Input Output
4
1 2
2 3
1 4
2
1 4 2
2 4 2
1
2

Solution:

Bạn cần đăng nhập để nộp bài

hpcode.edu.vn
Code tích cực
Trong 24h
  1. rianzz (10/17)
  2. bo0n_0708 (9/27)
  3. minh1806 (6/19)
Trong 7 ngày
  1. tienthanh0201 (45/53)
  2. sangdp.clc (44/73)
  3. bo0n_0708 (38/92)
Trong 30 ngày
  1. conmadem (163/205)
  2. bo0n_0708 (139/237)
  3. bao_khanh (112/176)
Thống kê
AC/Sub: 97887/180710
Pascal: 17121
C++: 130348
Python: 33199
Lượt xem/tải tests: 39607

Lưu Hải Phong - 2020
[email protected]