강하게 매칭 가능한 그래프
시간 제한3초메모리 제한512 MB
짝수 개의 정점을 가진 그래프가 모든 균형 이분할에 대해 완전 이분 매칭을 가지는지 판별한다.
문제
는 정점이 개인 단순 무향 그래프이고, 정점 집합과 간선 집합을 각각 , 로 쓴다. 두 간선이 정점 하나를 공유하면 두 간선은 인접하다고 한다. 두 정점이 간선 하나를 공유하면 두 정점은 인접하다고 하고, 그 간선은 두 정점을 잇는다. 간선과 그 간선의 끝점은 서로 결합한다고 한다. 의 부분집합 에서 어떤 두 간선도 인접하지 않으면 을 의 매칭이라 한다. 의 모든 정점이 의 간선 정확히 하나와 결합하면 을 완전 매칭이라 한다. 곧 매칭 이 완전 매칭인 것과 인 것은 같은 말이다.
간선이 가장 많은 매칭을 찾는 다항 시간 알고리즘이 있으므로 에 완전 매칭이 있는지는 다항 시간에 판정한다. 완전 매칭의 존재를 두고 다음 두 질문도 던질 수 있다.
- 인 의 분할 , 하나가 주어졌을 때, 모든 간선이 의 정점과 의 정점을 잇는 완전 매칭이 에 있는가?
- 인 의 모든 분할 , 에 대해, 모든 간선이 의 정점과 의 정점을 잇는 완전 매칭이 에 있는가?
첫 번째 질문의 답을 특징짓는 조건은 홀의 결혼 정리에서 끌어낼 수 있다. 양 끝점이 모두 에 있거나 모두 에 있는 간선을 지운 의 신장 부분그래프를 라 하자. 곧 이고, 는 한 끝점이 에 있고 다른 끝점이 에 있는 의 간선을 모두 모은 집합이다. 그러면 와 를 잇는 완전 매칭이 에 있는 것과 에 완전 매칭이 있는 것은 같은 말이다. 또 홀의 정리에서, 에 완전 매칭이 있는 것은 의 모든 부분집합 에 대해 가 성립하는 것과 같다. 여기서 는 의 어떤 정점과 인접한 의 정점을 모두 모은 의 이웃 집합이다. 최대 매칭 알고리즘이 다항 시간에 끝나므로 이 질문에도 다항 시간에 답한다.
두 번째 질문에는 효율적인 알고리즘이 있을까? 두 번째 질문의 답이 참인 그래프를 강하게 매칭 가능하다고 한다. 곧 인 의 모든 분할 , 에 대해 각 간선이 의 정점 하나와 의 정점 하나를 잇는 완전 매칭이 에 있으면 는 강하게 매칭 가능하다. 예를 들어 그림 1의 (a)는 강하게 매칭 가능하다. 대칭인 경우를 빼면 분할이 세 가지뿐이고 셋 다 완전 매칭이 있다. , 에는 , , 에는 , , 에는 가 있다. 그러나 (b)는 와 사이에 완전 매칭이 없으므로 강하게 매칭 가능하지 않다. 정점 수가 짝수인 그래프가 주어질 때 그 그래프가 강하게 매칭 가능한지 판정하는 프로그램을 작성하라.
그림 1: (a)는 강하게 매칭 가능하고, (b)는 그렇지 않다.
입력
첫 줄에 정점 수 과 간선 수 이 주어진다. 은 짝수이고 이며, 이다. 다음 개 줄에는 간선이 하나씩 주어지고, 각 줄에는 그 간선이 잇는 두 정점 와 가 주어진다. 정점 번호는 부터 까지이다. 입력 그래프는 단순 그래프여서 자기 자신을 잇는 간선이 없고 같은 간선이 두 번 주어지지 않는다.
출력
입력 그래프가 강하게 매칭 가능하면 을, 그렇지 않으면 을 한 줄에 출력한다. 출력은 정수 하나뿐이다.

