아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

언어 배우기

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

요약
각 소가 구사하는 언어 목록이 주어질 때, 모든 소가 공유 언어를 매개로 연결되도록 하려면 언어 교육을 몇 번 해야 하는지 최솟값을 구한다.
난이도

보통10점 중 6점

유형
그래프, 유니온 파인드, 해시맵, 구현
정답자
아직 제출이 없습니다

문제

농부 존에게는 1…N1 \ldots N 번으로 편리하게 번호가 매겨진 소 NN (2≤N≤10,0002 \le N \le 10{,}000) 마리가 있고, 역시 1…M1 \ldots M 번으로 번호가 매겨진 언어 MM (1≤M≤30,0001 \le M \le 30{,}000) 개가 있습니다. 소 ii 는 KiK_i (1≤Ki≤M1 \le K_i \le M) 개의 언어, 즉 Li1,Li2,…,LiKiL_{i1}, L_{i2}, \ldots, L_{iK_i} (1≤Lij≤M1 \le L_{ij} \le M) 를 말할 수 있습니다. 소들이 그리 똑똑하지는 않아서, 모든 소에 대한 KiK_i 의 합은 최대 100,000100{,}000 입니다.

두 소는 공통으로 말할 수 있는 언어가 있어야만 직접 대화할 수 있습니다. 하지만 소들은 필요하면 번역을 거쳐 메시지를 전달할 수 있습니다. 즉, 소 AA 와 BB 는 다음을 만족하는 소들의 열 T1,T2,…,TkT_1, T_2, \ldots, T_k 가 존재할 때에만 대화할 수 있습니다: AA 와 T1T_1 이 언어 하나를 공유하고, T1T_1 과 T2T_2 가 언어 하나를 공유하고, 이런 식으로 이어져서, TkT_k 와 BB 가 언어 하나를 공유합니다.

농부 존은 소들이 더 잘 어울리길 바라기 때문에, 모든 소가 다른 어떤 소와도 서로 소통할 수 있게 하고 싶습니다. 그는 책을 사서 자신의 소 중 아무에게나 원하는 언어를 가르칠 수 있습니다. 존은 꽤 알뜰한 농부라서, 모든 소가 서로 대화할 수 있게 만드는 데 필요한 책의 최소 개수만큼만 사려고 합니다. 이 최소 책 개수를 구하도록 도와주세요.

예를 들어, Alberta, Bessie, Contessa 라는 소 세 마리와 #1, #2, #3 으로 표시된 언어 세 개가 있다고 합시다. Alberta 는 언어 #2 와 #3 을, Bessie 는 언어 #2 를, Contessa 는 언어 #1 을 말할 수 있습니다. 지금은 Alberta 와 Bessie 는 서로 대화할 수 있지만 Contessa 는 혼자 남겨져 있습니다.

             #1  #2  #3
Alberta           x   x
Bessie            x
Contessa      x

존이 Contessa 에게 언어 #2 를 가르치는 책을 사 주면, 세 소 모두 언어 #2 를 공유하게 되어 서로 소통할 수 있습니다. (언어 #3 을 가르쳐도 되는데, 그러면 Contessa 가 Alberta 를 거쳐 Bessie 에게 닿을 수 있기 때문입니다.) 어느 쪽이든 여기서는 정확히 책 한 권이 필요합니다.

입력

  • 첫째 줄: 공백으로 구분된 두 정수 NN 과 MM.
  • 2…N+12 \ldots N+1 째 줄: i+1i+1 째 줄은 소 ii 가 말할 수 있는 언어를 Ki+1K_i + 1 개의 공백으로 구분된 정수로 나타냅니다: Ki,Li1,Li2,…,LiKiK_i, L_{i1}, L_{i2}, \ldots, L_{iK_i}.

출력

  • 정수 하나: 모든 소가 (직접 또는 간접적으로) 서로 소통할 수 있게 하기 위해 존이 사야 하는 책의 최소 개수.

예제5

  1. 예제 1

    입력
    3 3
    2 3 2
    1 2
    1 1
    
    예상 출력
    1
    
  2. 예제 2

    입력
    2 1
    1 1
    1 1
    
    예상 출력
    0
    
  3. 예제 3

    입력
    2 2
    1 1
    1 2
    
    예상 출력
    1
    
  4. 예제 4

    입력
    4 4
    2 1 2
    2 2 3
    2 3 4
    1 4
    
    예상 출력
    0
    
  5. 예제 5

    입력
    5 5
    1 1
    1 2
    1 3
    1 4
    1 5
    
    예상 출력
    4