본문 바로가기

Solutions/Dlbo's Solution

PKU 1904. King's Quest. Wait for Server-_-



....

빌어먹을 -_-

스'뽜'킹군..

나 이거 설명할 자신 없어...

-_-;;;

대략적으로 Mr.K가 제시한 솔루션과 동일하다고 보면 됩니다.

(리턴군의 지적대로, 제가 말한 DFS를 이용한게 Mr.K의 방법입니다.)

DFS를 두번이나 때리는 무식한 짓을 하긴 했습니다만...

일단 답이 제대로 나오고,

AC 받을 확률도 매우 높기 때문에 서버를 기-_-다리고 있습니다.

일단 scanf를 이용하여(서버에서 그리 권했으니깐요 ㅡ,.ㅡ;) 입력을 받고,

temp1과 temp2를 이용해 Mr.K가 그렸던 표를 2차원 배열로 구성합니다.

이걸 이용해 DFS로 강한 연결을 찾아내면 됩니다.

제가 백트래킹에 대해 얘기해놓고 DFS로 풀어놓은 이유가 뭔고 하니...

백트래킹을 이용한 재귀호출법으로 풀려면

3개의 set(C++ STL)을 써야 하는듸,

이 경우 TL이 당연히 날 수 밖에 없더군요 -_-;;;

이 STL을 이용한 방법을 C언어화 시켜놓고 나니 DFS를 이용한 풀이와 똑같군요.

STL을 이용한 풀이는 공주들과 왕자들, 중간 임시 set을 만든 후

이에 대해 가능한 모든 경우를 체크해서,

가능한 경우에만 해당 왕자의 set에 데이터를 추가하는 방식입니다.

뭐.. 일단은 이정도로...