Thông tin
Nguồn bài: Lưu Hải Phong — hpcode.edu.vn
Chi tiết
Dạng bài
Điểm: 100,00 (OI)
Giới hạn thời gian: 3.0s
Giới hạn bộ nhớ: 512M
Input: stdin
Output: stdout

Cho một vương quốc cấu trúc dạng cây gồm ~N~ thành phố. Mỗi truy vấn cung cấp tập ~S~ gồm ~K~ thành phố đặc biệt đang có nguy cơ bị đánh chiếm.

Hãy tìm số lượng thành phố ít nhất không thuộc ~S~ cần phá hủy để không còn đường đi nào giữa bất kỳ hai thành phố trong ~S~ qua những thành phố chưa bị phá hủy. Mỗi truy vấn được xét độc lập, không giữ lại việc phá hủy từ truy vấn trước.

Nếu không có giải pháp, tức là có hai thành phố trong ~S~ kề nhau trực tiếp, in ~-1~.

Dữ liệu vào

  • Dòng đầu chứa số nguyên ~N~ (~1 ≤ N ≤ 200000~).
  • ~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 vô hướng của cây. Các đỉnh đánh số từ ~1~ đến ~N~; mỗi cạnh có độ dài ~1~.
  • Dòng tiếp theo chứa số nguyên ~Q~ (~1 ≤ Q ≤ 200000~).
  • Tiếp theo là ~Q~ truy vấn độc lập. Mỗi truy vấn gồm một dòng chứa ~K~ (~1 ≤ K ≤ N~), tiếp theo là ~K~ số nguyên phân biệt ~x_1, x_2, …, x_K~ (~1 ≤ x_i ≤ N~) mô tả tập ~S~.

Kết quả

Với mỗi truy vấn, in số thành phố tối thiểu cần phá hủy, hoặc ~-1~ nếu không thể.

Ví dụ

Input
7
1 2
1 3
2 4
2 5
3 6
3 7
2
4
4 5 6 7
2
2 4
Output
2
-1

Ràng buộc

  • Subtask 1: ~N, Q ≤ 1000~.
  • Subtask 2: ~∑K ≤ 200000~.

Quy cách chấm

Đọc từ đầu vào chuẩn, ghi ra đầu ra chuẩn. Có 50 test độc lập, mỗi test 2 điểm; tổng điểm là 100. Không chấm theo batch. Thời gian: 3 giây; bộ nhớ: 512 MiB.

Nguồn: Lưu Hải Phong — hpcode.edu.vn.


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.