#5445. Kết nối trong tập đỉnh (CONNECTSET)

Bộ nhớ: 512 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

Trong một hệ thống mạng nội bộ của một doanh nghiệp lớn, các máy chủ được kết nối với nhau theo dạng cây để đảm bảo việc định tuyến luôn ổn định và không dư thừa. Mỗi máy chủ tương ứng với một đỉnh của cây, và mỗi kết nối vật lý giữa hai máy chủ tương ứng với một cạnh.

Do nhu cầu kiểm thử hệ thống, bộ phận kỹ thuật thường xuyên chọn ra một tập các máy chủ S và cần biết mức độ "kết nối nội bộ" của tập này. Cụ thể, hai máy chủ u v trong S được xem là kết nối trên S nếu có một đường đi trong cây nối u v tất cả các máy chủ trên đường đi đều thuộc chính tập S .

Mức độ kết nối cho biết có bao nhiêu cặp máy chủ trong tập S thật sự có thể liên lạc trực tiếp với nhau mà không cần thoát ra ngoài tập. Nhiệm vụ của bạn là, với mỗi truy vấn, hãy tính xem tập S được cho có bao nhiêu cặp như vậy.

Cho một cây gồm N đỉnh đánh số 1..N . Cạnh thứ i nối hai đỉnh khác nhau A_i, B_i (1 \le i \le N - 1) .

Chọn một tập đỉnh S = \{s_1, s_2, \ldots, s_K\} (các phần tử đôi một khác nhau). Với hai đỉnh khác nhau u, v \in S , nói rằng u v kết nối trên S nếu tồn tại một đường đi trên cây từ u đến v mọi đỉnh trên đường đi đều thuộc S .

Độ kết nối của S được định nghĩa là số cặp (u, v) thoả mãn:

  1. u, v \in S u \neq v ;

  2. 1 \le u < v \le N ;

  3. u v kết nối trên S .

Bạn được cho Q truy vấn, mỗi truy vấn cho một tập S . Hãy tính độ kết nối của S cho từng truy vấn.

Dữ liệu:

  • Dòng đầu chứa một số nguyên N (2 \le N \le 250\,000) .

  • N - 1 dòng tiếp theo, dòng thứ i chứa hai số nguyên A_i, B_i (1 \le A_i, B_i \le N, A_i \neq B_i) .

  • Dòng tiếp theo chứa một số nguyên Q (1 \le Q \le 100\,000) .

  • Q dòng tiếp theo, dòng thứ i mô tả truy vấn thứ i : trước hết là một số nguyên K , sau đó là K số s_1, \ldots, s_K (1 \le K \le N; 1 \le s_j \le N \ \forall j ; dãy s các phần tử đôi một phân biệt).

Dữ liệu bảo đảm đồ thị là một cây; tổng K trên tất cả truy vấn \le 10^6 .

Kết quả: Gồm Q dòng, dòng thứ i là độ kết nối của S trong truy vấn thứ i .

Ví dụ:

Dữ liệu:

7
1 2
1 3
1 5
2 7
4 6
4 7
6
1 1
2 1 2
4 1 2 3 4
5 1 2 4 6 7
6 1 2 3 4 5 6
7 1 2 3 4 5 6 7

Kết quả:

0
1
3
10
7
21

Giới hạn:

  • Subtask 1 ( 25\% số điểm): N \le 50, Q \le 50 .

  • Subtask 2 ( 25\% số điểm): N \le 2500, Q \le 2500 .

  • Subtask 3 ( 25\% số điểm): Mỗi truy vấn có K = 3 .

  • Subtask 4 ( 25\% số điểm): Không ràng buộc bổ sung.