연결된 지배 집합
시간 제한2초메모리 제한1024 MB
n×m 격자 그래프에서 크기가 nm/2 이하인 연결된 지배 집합을 구성하거나 존재하지 않음을 판정한다.
문제
무향 그래프 에서 다음의 조건을 만족하는 정점 집합 를 그래프 의 지배 집합이라고 부릅니다.
- 에 속하지 않는 모든 정점 에 대해 간선 가 에 속하도록 하는 정점 가 하나 이상 존재합니다.
또한, 다음의 조건을 만족하는 정점 집합 를 그래프 의 연결된 지배 집합이라고 부릅니다.
- 는 그래프 의 지배 집합입니다.
- 그래프 에서 에 의해 유도된 부분 그래프는 연결 그래프입니다.
요약하자면, 어떤 정점 집합 가 그래프의 연결된 지배 집합이 되기 위해서는, 의 모든 정점이 에 속하거나 의 어떤 정점과 인접한 상태여야 하며, 에 속하는 임의의 두 정점 , 를 선택할 때 에 속하는 정점만을 포함하는 경로로 연결되어 있어야 합니다.
개의 행과 개의 열이 있으며, 상하좌우로 인접한 모든 두 칸 사이에 간선이 존재하는 격자 그래프를 생각합시다. 이 그래프에는 개의 정점과 개의 간선이 존재합니다. 이 그래프에 대해 흐즈로는 다음과 같은 가설을 세웠습니다.
- 이상의 임의의 과 에 따라 정의된 격자 그래프에서, 크기가 이하인 연결된 지배 집합 가 존재합니다.
흐즈로는 매우 많은 경우에 이 사실이 성립함을 직접 증명했습니다. 그러나 아직 모든 경우에 대해서 이 사실을 증명한 것이 아니기 때문에, 이 가설이 틀린 경우가 있을지도 모릅니다. 과 이 주어질 때, 과 에 대해 정의된 격자 그래프에서 크기가 이하인 연결된 지배 집합 가 존재하는지 판단하고, 존재한다면 그러한 집합 를 출력하세요.
입력
한 줄에 행의 개수 과 열의 개수 이 공백으로 분리되어 주어집니다. ()
출력
조건을 만족하는 집합 가 존재한다면, YES를 출력하고, 그다음 줄부터 개의 행에 걸쳐 이하의 설명에 따라 집합 를 출력하세요.
를 표현하기 위해, 개의 행에 걸쳐 각 줄에 길이가 인 문자열을 출력해야 합니다. 문자열의 각 문자는 다음의 조건을 만족해야 합니다.
- 번째 행과 번째 열에 해당하는 정점이 에 포함되어 있다면, 번째 줄의 번째 문자는
1이어야 합니다. - 그렇지 않다면, 번째 줄의 번째 문자는
0이어야 합니다.
조건을 만족하는 집합 가 여러 개 존재한다면 그 중 어느 것을 출력해도 정답으로 인정됩니다.
조건을 만족하는 집합 가 존재하지 않는다면, 한 줄에 NO를 출력하세요.
힌트
어떤 그래프 와 어떤 정점 집합 에 대해, 에 의해 유도된 부분 그래프는 에 포함된 정점과 양쪽 끝점이 모두 에 해당하는 간선 전부로 이루어진 부분 그래프로 정의됩니다.
연결된 지배 집합에 대한 정의를 이해하기 어려운 경우 영어 위키백과의 "Connected dominating set" 문서를 참고할 수 있습니다.