Cho cây gồm n đỉnh với các cạnh có trọng số dương. Mỗi truy vấn cho một tập đỉnh được đánh dấu {v1,…,vk}. Hãy tính tổng trọng số nhỏ nhất các cạnh của một cây con liên thông chứa tất cả các đỉnh được đánh dấu (cây Steiner trên cây, chính là cây con tối thiểu nối các đỉnh đó).
Gợi ý: sắp xếp các đỉnh đánh dấu theo thời điểm vào DFS, khi đó tổng khoảng cách giữa các cặp liên tiếp (vòng tròn) đúng bằng hai lần tổng trọng số cây con cần tìm. Sử dụng LCA bằng nhảy nhị phân.
Dòng đầu chứa n và q. n−1 dòng tiếp theo, mỗi dòng ba số u v w. Mỗi truy vấn gồm một dòng: số k rồi k chỉ số đỉnh được đánh dấu.
1≤n,q≤2⋅105, 1≤w≤106, tổng k trên tất cả truy vấn không quá 2⋅105. Gốc là đỉnh 1.
Với mỗi truy vấn, in tổng trọng số cây con tối thiểu trên một dòng.
Ví dụ:
Đầu vào:
5 2
1 2 2
1 3 3
3 4 1
3 5 4
3 2 4 5
1 2
Đầu ra:
10
0
Giải thích:
Đang tải editor...