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

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

관개 라인

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

요약
심은 칸마다 같은 행이나 열의 급수관을 하나 이상 열도록 여는 줄 수를 최소화합니다.
난이도

보통10점 중 6점

유형
그래프, DFS, BFS
정답자
아직 제출이 없습니다

문제

농장은 직사각형 밭 여러 개로 이루어지고, 밭은 다시 정사각형 구역으로 나뉜다. 돌려짓기를 하므로 한 계절에 어떤 구역에는 작물을 심고 어떤 구역은 쉬게 둔다.

밭마다 관개 시설이 하나씩 있다. 주 급수관이 밭 둘레를 돌고, 밸브가 주 급수관과 가로세로 관개 라인을 연결한다. 관개 라인은 밭의 각 행에 하나, 각 열에 하나씩 있으므로 MM행 NN열 밭에는 모두 M+NM + N개가 있다. 밸브를 열면 그 라인에 물이 흐르고, 닫으면 흐르지 않는다. 한 구역에 물을 대려면 그 구역이 속한 행 라인과 열 라인 중 하나만 열려 있으면 된다. 열린 라인 위에서도 물이 필요 없는 구역의 배출구는 막아 둔다.

관리 부담을 줄이려면 열어야 하는 라인 수가 최소여야 한다. 밭의 배치를 읽고, 작물을 심은 모든 구역에 물을 대는 데 필요한 관개 라인의 최소 개수를 구하는 프로그램을 작성하시오.

입력

첫 줄에 테스트 케이스의 개수 TT (1≤T≤1001 \le T \le 100)가 주어진다.

각 테스트 케이스의 첫 줄에는 밭의 행 수 MM과 열 수 NN (1≤M,N≤1001 \le M, N \le 100)이 공백으로 구분되어 주어진다. 이어지는 MM개 줄에는 길이가 NN인 0과 1로 된 문자열이 주어진다. 1은 작물을 심은 구역, 0은 쉬는 구역을 뜻한다.

출력

각 테스트 케이스마다 "Case #X: Y" 형식으로 한 줄씩 출력한다. XX는 1부터 시작하는 테스트 케이스 번호이고, YY는 열어야 하는 관개 라인의 최소 개수다. 콜론 뒤에는 공백을 하나 둔다.

예제6

  1. 예제 1

    입력
    2
    4 4
    0010
    0101
    0010
    0000
    5 4
    1001
    0010
    1100
    1110
    0101
    
    예상 출력
    Case #1: 2
    Case #2: 4
    
  2. 예제 2

    입력
    3
    1 1
    0
    1 1
    1
    3 3
    000
    000
    000
    
    예상 출력
    Case #1: 0
    Case #2: 1
    Case #3: 0
    
  3. 예제 3

    입력
    2
    4 7
    1111111
    1111111
    1111111
    1111111
    7 4
    1111
    1111
    1111
    1111
    1111
    1111
    1111
    
    예상 출력
    Case #1: 4
    Case #2: 4
    
  4. 예제 4

    입력
    1
    6 6
    100000
    010000
    001000
    000100
    000010
    000001
    
    예상 출력
    Case #1: 6
    
  5. 예제 5

    입력
    2
    1 100
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    100 1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    
    예상 출력
    Case #1: 1
    Case #2: 1
    
  6. 예제 6

    입력
    1
    5 6
    000100
    000100
    111111
    000100
    010100
    
    예상 출력
    Case #1: 3