df1097   3년 전

풀이방법

1. virus[10]에 어떤 바이러스를 활성화시킬지 저장합니다.(이 부분은 dfs)를 이용
2. M개만큼 선택되었으면 spread함수를 통해 바이러스를 퍼뜨립니다.(이 부분은 queue를 이용한 bfs) 

어디서 시간초과가 걸리는 것일까요............... 제발 저를 도와주세요. 탈모가 도질 것 같아요. 내 머리를 살려줘~!~!

df1097   3년 전

문제는

ret = Min(ret, dfs(n, M, depth + 1, rest, possible, i+1));

이부분이었다는 것을 꺠달았습니다. 변수 하나를 사용해서 미리 할당을 해두고 값을 비교하지 않고 저렇게 사용하니, 값을 비교할때 한번 시행되고, 값을 할당할때 한번 시행되고 이러면서 중복적으로 시행된다는 사실을 깨달았습니다.

댓글을 작성하려면 로그인해야 합니다.