만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

봄맞이 대청소

시간 제한1초메모리 제한128 MB

요약
트리에 잎을 추가한 Q개의 변형마다, 모든 간선을 덮는 잎 쌍 경로 길이의 합을 최소로 구합니다. 불가능하면 -1을 출력합니다.
난이도

어려움10점 중 8점

유형
트리, 동적 계획법, 그리디
정답자
아직 제출이 없습니다

문제

이 트리는 NN개의 노드(1번부터 NN번까지)와 N−1N-1개의 간선으로 이루어져 있다. 간선에 먼지가 너무 많이 쌓여서 Flóra의 어머니가 이것들을 청소하기로 했다.

임의의 트리의 간선을 청소하는 방법은 다음 과정을 반복하는 것이다. 서로 다른 리프(leaf, 간선이 정확히 하나만 연결된 노드) 두 개를 고르고, 둘 사이 최단 경로에 있는 모든 간선을 청소한다. 경로의 간선 수가 dd개라면 이 경로를 청소하는 비용은 dd이다.

리프가 상하지 않도록 각 리프는 최대 한 번만 선택한다. 트리의 모든 간선이 청소되면 트리 청소가 끝난다. 비용은 청소한 모든 경로 비용의 합이다.

Flóra는 이 트리가 너무 작고 단순하다고 생각해서 QQ개의 변형을 상상한다. ii번째 변형에서는 원래 트리에 새 리프를 총 DiD_i개 추가한다. 새 리프마다 원래 트리의 노드 하나를 골라 간선으로 연결한다. 이 과정에서 일부 노드는 리프가 아니게 될 수 있다.

QQ개의 변형 각각에 대해 트리를 청소하는 데 필요한 최소 비용을 구한다. 모든 변형은 원래 트리에서 출발한다.

입력

첫 줄에 정수 NN과 QQ가 주어진다.

이어지는 N−1N-1개의 줄에는 정수 uu와 vv가 주어지며, 이는 노드 uu와 vv가 간선으로 연결되어 있다는 뜻이다.

그다음 QQ개의 줄에는 변형이 주어진다. ii번째 줄의 첫 정수는 DiD_i이고, 이어서 정수 DiD_i개 aja_j가 나온다. aja_j는 새 리프를 붙일 노드 번호이다. 같은 노드에 리프 여러 개를 붙일 수 있다.

출력

QQ개의 줄을 출력한다. ii번째 줄에는 ii번째 변형의 트리를 청소하는 데 필요한 최소 비용을 출력한다. 트리를 청소할 수 없으면 −1-1을 출력한다.

제한

3≤N≤1053 \le N \le 10^5

1≤Q≤1051 \le Q \le 10^5

1≤u,v≤N1 \le u, v \le N

모든 ii에 대해 1≤Di≤1051 \le D_i \le 10^5

1≤i≤Q1 \le i \le Q에 대해 ∑Di≤105\sum D_i \le 10^5

모든 변형의 모든 jj에 대해 1≤aj≤N1 \le a_j \le N

힌트

다음 그림은 두 번째 변형을 나타낸다.

가능한 풀이는 리프 1과 6, A와 7, B와 3 사이의 경로를 청소하는 것이다.

예제1

  1. 예제 1

    입력
    7 3
    1 2
    2 4
    4 5
    5 6
    5 7
    3 4
    1 4
    2 2 4
    1 1
    
    예상 출력
    -1
    10
    8