트리와 깃발

월간 향유회 2023. 06. E번 BOJ 28254번
시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 1024 MB204654933.108%

문제

머슥은 $N$개의 정점이 있는 트리와 $M$종류의 깃발들을 가지고 있다. 깃발의 종류는 $1$부터 $M$까지의 정수로 표현된다. 각 정점은 $0$개 이상 $M$개 이하의 서로 다른 깃발을 가질 수 있다.

주어진 트리에서 두 개의 서로 다른 정점을 선택하고, 각 정점에서 깃발을 하나씩 선택할 때, 두 깃발이 같은 종류라면 두 정점을 잇는 간선을 추가할 수 있다.

주어진 트리에서 각 간선을 제거했을 때, 위 조건에 따라 깃발을 선택하여 간선을 추가하면 다시 하나의 트리가 되도록 깃발을 고르는 경우의 수를 구하여라.

입력

첫째 줄에 $N,\ M$이 공백을 사이에 두고 주어진다. $(2 \le N \le 500\ 000;$ $1 \le M \le 500\ 000)$

둘째 줄부터 $N-1$개의 줄에 걸쳐 트리의 간선들이 주어진다. $i$번째 줄에는 두 개의 정수 $A_i$, $B_i$가 공백을 사이에 두고 주어진다. 이는 $i$번 간선이 $A_i$번 정점과 $B_i$번 정점을 연결함을 의미한다. $(1 \le A_i,\ B_i \le N;$ $1 \le i \lt N;$ $A_i \ne B_i)$

이어서 $M$개의 줄에 걸쳐 $j$번째 줄에는 $C_j$ 와 종류가 $j$인 깃발을 가지고 있는 $C_j$개의 서로 다른 정점들이 공백을 사이에 두고 주어진다. $(0 \le C_j \le 500\ 000$; $1 \le j \le M;$ $\sum_{j=1}^{M}C_j \le 500\ 000)$

출력

$N-1$개의 줄에 걸처 $i$번째 줄에 트리의 $i$번 간선을 제거했을 때, 다시 하나의 트리가 되도록 깃발을 고르는 경우의 수를 구하여라.

예제 입력 1

5 6
4 5
1 5
3 2
2 4
2 5 2
2 4 2
2 3 2
3 5 2 3
3 1 3 2
0

예제 출력 1

5
2
5
6

예제 입력 2

2 1
1 2
2 1 2

예제 출력 2

1

출처

Contest > BOJ User Contest > 월간 향유회 > 월간 향유회 2023. 06. E번

  • 문제를 만든 사람: jthis
  • 문제를 검수한 사람: amsminn, bnb2011, djs100201, dong_gas, pjshwa, snrnsidy, tony9402, utilforever