BOJ 5529 - 저택

image.png

특이한 형태의 최단경로 문제인데, 결론적으로 모든 스위치와 시작점 끝점만 하나의 위치로 보면 된다.

왜냐면 wlog.wlog. 가로로 문이 열려있을 때 가로로 이동하는 곳이 스위치가 아니면 세로로 이동할 수 없기 때문이다.

그리고 현재 문이 가로로 열려있는지 세로로 열려있는지만 판단하면 된다.

따라서 2K2K 개 정도의 정점이 나온다.

이제 간선을 생각해보면 항상 가로나 세로로 인접한 스위치에 대해서만 이어주면 된다.

그러니까 하나의 정점에서 간선은 최대 44개가 나온다.

인접한 스위치들을 찾는 것은 자료구조를 쓰거나 이분탐색을 이용해서 O(logk)O(\log k)에 찾아줄 수 있다.

Tags:

Categories:

Updated:

Comments