HH 왕국

트리에서 여러 정점 집합이 주어질 때, 각 집합의 모든 두 정점 사이 거리의 합의 두 배를 구한다.

어려움8트리DFS누적 합아직 제출이 없습니다시간 제한10초메모리 제한512 MB

문제

HH는 경쟁 프로그래밍 최강국이다. HH에는 1번부터 nn번까지 번호가 붙은 도시가 있고, 도시 사이는 도로로 이어져 있다. 서로 다른 두 도시를 잇는 경로는 언제나 정확히 하나뿐이다. 즉 HH의 도시와 도로는 트리를 이룬다.

HH는 미래 기반 시설 개발 사업의 예산을 나누려고 대회를 연다. 대회는 mm개의 라운드로 이루어지고, ii번째 라운드가 ii번째 예산의 배분을 정한다. 배분은 그 예산에 걸린 도시 kik_i개가 벌이는 더블 라운드 로빈의 결과로 정해진다. 서로 다른 두 참가 도시 A와 B에 대해 A가 B로 원정하는 경기와 B가 A로 원정하는 경기가 각각 한 번씩 열린다. 그래서 한 라운드에서 열리는 경기는 모두 ki×(ki1)k_i \times (k_i - 1)번이다.

출장비를 정확히 정산하려면 라운드마다 참가 도시 사이의 총 이동 거리를 알아야 한다. 한 경기의 이동 거리는 원정 팀이 출발한 도시에서 경기가 열리는 도시까지 이어지는 유일한 경로에 놓인 도로의 수이다. 라운드마다 그 라운드에서 열리는 모든 경기의 이동 거리를 합한 값을 구하여라.

입력

첫 줄에 테스트 케이스의 수 TT가 주어진다.

각 테스트 케이스의 첫 줄에는 도시의 수 nn과 라운드의 수 mm이 주어진다. 이어지는 n1n - 1개의 줄에는 각각 두 정수 uuvv가 주어지며, 도시 uu와 도시 vv를 잇는 도로가 있다는 뜻이다. 이어지는 mm개의 줄에는 각각 ii번째 라운드의 참가 도시 수 kik_i가 먼저 주어지고, 같은 줄에 참가 도시의 번호 ci,1,ci,2,,ci,kic_{i,1}, c_{i,2}, \dots, c_{i,k_i}가 주어진다.

  • 1T1001 \le T \le 100
  • 2n1052 \le n \le 10^5
  • 1m1051 \le m \le 10^5
  • 1u,v,ci,jn1 \le u, v, c_{i,j} \le n
  • 2kin2 \le k_i \le n
  • 한 라운드 안에서 ci,jc_{i,j}는 모두 서로 다르다.
  • 한 테스트 케이스에서 iki2×105\sum_i k_i \le 2 \times 10^5이다.
  • 입력 파일의 크기는 60MB를 넘지 않는다.

출력

각 라운드마다 그 라운드의 총 이동 거리를 한 줄에 하나씩, 입력에 주어진 순서대로 출력한다.