BOJ 31527 Tournament Matchmaking

BOJ 31527 Tournament Matchmaking

문제 링크:

문제 내용

하나의 럭비 팀에는 15개의 포지션이 있으며, 각각의 포지션을 한 사람이 맡아야 합니다. 1명 이상 14명 이하의 럭비 선수들로 이루어진 그룹들을 두 개씩 짝지어 럭비 팀을 구성하려고 합니다. 여러 팀에 같은 그룹이 속할 수 없습니다. 각 선수가 정확히 2가지 포지션을 맡을 수 있을 때, 주어진 그룹들로 만들 수 있는 럭비 팀의 최대 개수를 출력하세요.

입력

첫 줄에는 그룹의 수 nn이 주어집니다. (1n5001 \le n \le 500)

각 그룹에 대해, 첫 줄에는 그 그룹에 속한 선수의 수 kk가 주어집니다. (1k141 \le k \le 14) 다음 kk줄에는 각 선수가 맡을 수 있는 두 포지션의 번호 aabb가 주어집니다. (1a<b151 \le a < b \le 15)

출력

문제의 정답을 출력합니다.

문제 풀이

스포일러

모든 가능한 그룹의 쌍에 대해 두 그룹을 합칠 수 있는지 판별을 한 뒤에, 그러한 쌍들을 가지고 최대 이분 매칭의 크기를 확인하면 됩니다. 가능한 그룹의 쌍은 7명 이하로 이루어진 그룹 하나와 8명 이상으로 이루어진 그룹 하나로 이루어지므로, 이러한 쌍들에 의해 만들어지는 그래프는 이분 그래프입니다.

두 그룹을 합칠 수 있는지 판별도 이분 매칭으로 할 수 있습니다. 문제의 조건에 의해 E=2VE = 2V이므로, Hopcroft-Karp 알고리즘이 충분히 빠르게 동작합니다.

Last updated on