DOJ logoDOJ
문제
최근 추가된 문제들저장한 문제문제집
카테고리DLC대회그룹팀게시판
랭킹
문제 풀이 랭킹스트릭 랭킹DOJ Power 랭킹
현황
문제 제안로그인회원가입
DOJ logoDOJ

OI 서브태스크 채점, Elo 레이팅, Discord 인증을 갖춘 커뮤니티 온라인 저지.

문제
문제 목록카테고리
커뮤니티
대회랭킹게시판공지사항외부 대회 개최이용 안내
계정
로그인회원가입채점 현황
정책
이용약관DLC 이용 규칙개인정보 처리방침API 사용 설명서언어별 채점 환경대회 순위 보상레이팅과 퍼포먼스
© 2026 DOJ
모든 권리 보유
해설

데이터 검수

문제로 돌아가기

해설

격자의 각 면을 정점으로 하는 듀얼 그래프 DDD를 만든다. 내부 면은 (N−1)(M−1)(N-1)(M-1)(N−1)(M−1)개이며, 격자 바깥 전체를 하나의 외부 면으로 본다.

원래 그래프의 유향 간선 eee를 진행 방향으로 바라보았을 때 오른쪽 면을 R(e)R(e)R(e), 왼쪽 면을 L(e)L(e)L(e)라 하자. 듀얼 그래프에는 다음 간선을 추가한다.

R(e)→L(e)R(e) \to L(e)R(e)→L(e)

이제 DDD의 강한 연결 요소를 구하고, 축약 그래프를 생각한다.

보조정리 1. 원래 그래프의 유향 사이클 안쪽에는 외부 면을 포함하지 않는 source SCC 또는 sink SCC가 존재한다.

유향 사이클이 시계 방향이면 사이클 안쪽은 모든 간선의 오른쪽에 있다. 따라서 사이클을 가로지르는 듀얼 간선은 안쪽에서 바깥쪽으로만 향한다. 사이클 안쪽 SCC들 중 source를 하나 고르면, 이는 전체 축약 그래프에서도 source이다.

유향 사이클이 반시계 방향이면 같은 논리로 듀얼 간선이 바깥쪽에서 안쪽으로만 향한다. 사이클 안쪽 SCC들 중 sink를 하나 고르면 된다.

보조정리 2. 외부 면을 포함하지 않는 source SCC 또는 sink SCC의 면들을 둘러싸는 바깥 경계에는 유향 사이클이 존재한다.

source SCC에는 다른 SCC에서 들어오는 듀얼 간선이 없다. 따라서 경계를 가로지르는 모든 듀얼 간선의 방향이 SCC의 안쪽에서 바깥쪽으로 일정하다. 듀얼 간선을 오른쪽 면에서 왼쪽 면으로 정의했으므로, 원래 그래프에서 이 경계는 한 방향으로 이어지는 유향 사이클이다. sink SCC도 방향만 반대이고 동일하다.

SCC에 속한 내부 면의 행 범위가 aaa부터 bbb, 열 범위가 ccc부터 ddd라 하자. 그 SCC의 바깥 경계를 포함하는 최소 정점 직사각형은

(a+1,c+1,b+2,d+2)(a+1,c+1,b+2,d+2)(a+1,c+1,b+2,d+2)

이다. 이 직사각형의 넓이는 (b−a+2)(d−c+2)(b-a+2)(d-c+2)(b−a+2)(d−c+2)이다.

보조정리 2에 의해 각 후보 직사각형은 실제로 유향 사이클을 포함한다. 반대로 임의의 유향 사이클에 보조정리 1을 적용하면, 그 사이클의 직사각형 안에 들어가는 후보 SCC를 얻는다. 따라서 외부 면 SCC를 제외한 source SCC와 sink SCC의 경계 직사각형만 비교하면 최적해를 얻는다.

면의 수가 최대 약 2.5⋅1072.5 \cdot 10^72.5⋅107이므로 일반적인 인접 리스트는 메모리를 많이 사용한다. 각 내부 면의 네 이웃은 H,VH,VH,V에서 즉시 계산할 수 있다. 외부 면에 인접한 간선만 별도 배열에 저장한 뒤, 암시적 그래프에서 반복형 Kosaraju 알고리즘을 수행한다.

시간 복잡도는 O(NM)O(NM)O(NM)이고, 메모리 복잡도는 O(NM)O(NM)O(NM)이다.

Solution written by GPT5.6