만드는 중입니다

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

이중 매칭

시간 제한2초메모리 제한512 MB

요약
기사와 숙녀의 호환 표가 주어질 때, 기사 한 명이 호환되는 숙녀 두 명과 짝을 이루는 겹치지 않는 삼인조의 최대 개수를 구합니다.
난이도

보통10점 중 7점

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

문제

19세기 학교에서 귀족이 배우는 가장 중요한 과목 중 하나가 춤이었다. 무도회는 새로운 사람을 만나는 주된 기회였고, 때로는 유일한 기회이기도 했다. 연애와 사업 모두에 쓰였다. 그런데 많은 기사가 전쟁에서 목숨을 잃어서 무도회에 기사가 모자라는 일이 흔했다. 이를 해결하려고 기사 한 명이 한 명이 아니라 두 명의 숙녀에게 춤을 청하도록 바꾼 춤이 생겼다. 새로운 춤은 세 명이 한 조를 이루는 삼중조를 위해 만들어졌고, 기존 춤은 두 명이 한 조를 이루는 짝을 대상으로 그대로 남았다.

지금도 역사 춤을 복원하는 커뮤니티가 있으며, 기사 수는 보통 숙녀 수보다 적다. 그래서 숙녀-기사-숙녀 삼중조 춤도 여전히 연구된다.

Betty는 인기 있는 역사 춤 커뮤니티의 리더이다. 일부 기사와 숙녀는 서로를 싫어해서 같은 삼중조에서 함께 춤추기를 원하지 않는다. Betty는 커뮤니티의 이런 반감을 모두 알고 있다. 그녀에게 필요한 것은 춤에서 선택할 수 있는 삼중조의 최대 개수 tt를 찾는 방법뿐이다. 기사와 숙녀 사이의 실제 짝짓기를 알 필요는 없다. 그녀는 춤을 추는 사람들에게 "이제 tt개의 삼중조를 만들어 주세요. 가능하다는 걸 알고 있어요"라고 말하곤 한다. Betty를 도와 숙녀-기사-숙녀 이중 매칭의 최대 용량을 구하라.

입력

첫 줄에 테스트 케이스의 개수 tt가 주어진다 (1≤t≤201 \le t \le 20). 각 테스트 케이스의 첫 줄에는 기사의 수 nn과 숙녀의 수 mm이 주어진다 (1≤n,m1 \le n, m, n+m≤150n + m \le 150). 이어서 nn개의 줄에 각각 0과 1로 이루어진 길이 mm의 문자열이 주어진다. cc번째 줄의 ℓ\ell번째 문자가 1이면 기사 cc와 숙녀 ℓ\ell이 한 삼중조에 함께 들어갈 수 있다. 모든 테스트 케이스의 n+mn + m 합은 150을 넘지 않는다.

출력

각 테스트 케이스마다 만들 수 있는 삼중조의 최대 개수 tt를 한 줄에 출력한다.

힌트

그림에서 각 선은 기사가 숙녀와 춤출 수 있음을 뜻한다. 굵은 선은 기사가 숙녀에게 춤을 청하는 경우를 뜻한다.

예제2

  1. 예제 1

    입력
    2
    2 3
    111
    111
    3 4
    0110
    1100
    0011
    
    예상 출력
    1
    2
    
  2. 예제 2

    입력
    1
    3 6
    001100
    111111
    001100
    
    예상 출력
    2