만드는 중입니다

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

도로변 최적화

면접 대비

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

요약
도달 가능성을 나타내는 인접 행렬이 주어질 때, 모든 도달 관계를 유지하면서 남길 수 있는 최소 도로 수를 구한다.
난이도

보통10점 중 4점

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

문제

지방 GG의 일부 마을은 도로로 연결되어 있으며, 도로는 항상 양방향으로 통행할 수 있다. 도로망을 유지할 예산이 부족하여, 최소한의 도로만 남기기로 결정했다. 다만 현재 마을 AA에서 마을 BB로 갈 수 있다면, 도로를 줄인 뒤에도 그 가능성은 유지되어야 한다.

남겨야 하는 도로의 최소 개수를 구하시오.

입력

입력 파일의 첫 번째 줄에는 테스트의 수 TT가 주어진다 (1≤T≤50 0001 \le T \le 50\,000). 이어서 TT개의 테스트에 대한 설명이 주어진다.

tt번째 테스트의 첫 번째 줄에는 마을의 수 NtN_t가 주어진다 (1≤Nt≤2001 \le N_t \le 200).

다음 NtN_t개의 줄에는 NtN_t개의 정수가 주어지며, 각 정수는 00 또는 11이다. ii번째 줄의 jj번째 위치가 00이면 마을 ii에서 마을 jj로 갈 수 없고(다른 마을을 거쳐서도 갈 수 없다), 11이면 통로가 있다. 마을에서 자기 자신으로 가는 통로가 있다고 가정하므로, ii번째 줄의 ii번째 위치에는 항상 11이 있다 (1≤i≤Nt1 \le i \le N_t).

모든 테스트에 대한 Nt2N_t^2의 합은 50 00050\,000 이하임이 보장된다.

출력

각 테스트마다 남겨야 하는 도로의 최소 개수를 한 줄에 하나씩 출력한다.

예제2

  1. 예제 1

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

    입력
    2
    4
    1 1 1 1
    1 1 1 1
    1 1 1 1
    1 1 1 1
    7
    1 1 1 0 0 0 0
    1 1 1 0 0 0 0
    1 1 1 0 0 0 0
    0 0 0 1 1 0 1
    0 0 0 1 1 0 1
    0 0 0 0 0 1 0
    0 0 0 1 1 0 1
    
    예상 출력
    3
    4