Kingct ()
kingct 2000 ms 1024 MB
Nội dung bài tập

Cho một vương quốc cấu trúc dạng cây gồm \(N\) đỉnh và \(N - 1\) cạnh vô hướng kết nối chúng. Các đỉnh được đánh số từ \(1\) đến \(N\). Hoàng gia cần chuẩn bị phương án đối phó với các cuộc tấn công biệt lập. Bạn cần xử lý \(Q\) truy vấn độc lập, mỗi truy vấn cung cấp một tập hợp \(S\) gồm \(K\) thành phố đặc biệt (\(S = \left\{ x_{1},x_{2},\ldots,x_{K} \right\}\)) đang có nguy cơ bị địch đánh chiếm.

Yêu cầu: Với mỗi truy vấn, hãy tìm số lượng thành phố tối thiểu (không thuộc tập \(S\)) cần phải phá hủy để không tồn tại bất kỳ đường đi nào giữa hai thành phố bất kỳ trong tập \(S\) mà chỉ đi qua các thành phố chưa bị phá hủy. Nếu không có giải pháp nào khả thi (nghĩa là tồn tại hai thành phố trong tập \(S\) kề nhau trực tiếp bằng một cạnh trên cây gốc), hãy in ra -1.

Dữ liệu vào:

  • Dòng đầu chứa số nguyên \(N\) (\(1 \leq N \leq 2.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 của cây vương quốc.

  • Dòng tiếp theo chứa số nguyên \(Q\) (\(1 \leq Q \leq 2.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\)).

Dữ liệu:

  • Với mỗi truy vấn, in ra một số nguyên duy nhất là số thành phố tối thiểu cần phá hủy, hoặc -1 nếu bất khả thi.

Ví dụ:

input output

7

1 2

1 3

2 4

2 5

3 6

3 7

2

4

4 5 6 7

2

2 4

2

-1

Ràng buộc:

  • Subtask 1 (\(N,Q \leq 1000\)).

  • Subtask 2 (\(\sum_{}^{}K \leq 2 \cdot 10^{5}\)).

Nộp bài
Bạn cần đăng nhập để nộp bài. Đăng nhập
Lịch sử nộp bài của bạn
Bạn chưa nộp bài tập này.