Cho một mạng lưới gồm \(N\) thành phố cấu trúc dạng cây với \(N - 1\) cạnh vô hướng có độ dài bằng \(1\). Các thành phố được đánh số từ \(1\) đến \(N\). Tại mỗi truy vấn, hoàng gia ban bố một tập hợp \(S\) gồm \(K\) thành phố trọng yếu (\(S = \left\{ x_{1},x_{2},\ldots,x_{K} \right\}\)).
Yêu cầu: Với mỗi truy vấn, bạn cần chọn ra một thành phố \(u\) bất kỳ trên toàn bộ cây gốc sao cho tổng khoảng cách từ \(u\) đến tất cả các thành phố trong tập \(S\) là nhỏ nhất có thể. Hãy in ra giá trị tổng khoảng cách nhỏ nhất đó. Nói cách khác, tính giá trị của biểu thức:
\[M(S) = \min_{u \in V}{\sum_{v \in S}^{}\text{dist}(u,v)}\]
Dữ liệu vào:
Dòng đầu chứa số nguyên \(N\) (\(1 \leq N \leq 2 \cdot 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 kết nối.
Dòng tiếp theo chứa số nguyên \(Q\) (\(1 \leq Q \leq 2 \cdot 10^{5}\)).
Tiếp theo là \(Q\) nhóm dòng, mỗi nhóm mô tả một truy vấn:
Dòng đầu chứa số nguyên \(K\) – số lượng thành phố trong tập \(S\).
Dòng tiếp theo chứa \(K\) số nguyên phân biệt \(x_{1},x_{2},\ldots,x_{K}\) (\(1 \leq x_{i} \leq N\)).
Kết quả:
- Với mỗi truy vấn, in ra một số nguyên duy nhất là giá trị tối thiểu của tổng khoảng cách \(M(S)\).
Ví dụ:
| input | output | Giải thích |
|---|---|---|
5 1 2 2 3 3 4 4 5 1 2 2 5 |
3 | Khoảng cách từ nút 3 đến 2 và 5 là 1+2=3; từ nút 2 là 0+3=3; từ nút 4 là 2+1=3; từ nút 1 là 1+4=5; từ nút 5 là 3+0=3 |
Ràng buộc:
Subtask 1 (\(N,Q \leq 1000\)).
Subtask 2 (\(\sum_{}^{}K \leq 2 \cdot 10^{5}\)).
- auxi Tính toán khoảng cách trên tập đỉnh
- kingct Kingct
- relcenter Trung tâm cứu trợ
- color Cặp đỉnh cùng màu liên thông
- black Đen và trắng
- citycter Thành phố trung tâm •
- distmin Khoảng cách giữa hai đỉnh trọng yếu
- kcmax Đường kính của tập đỉnh trọng yếu
- maxiset Tập độc lập trọng số cực đại trên cây ảo