fabi88   3년 전

너비 우선 탐색에서  "방문할 수 있는 정점이 여러 개인 경우에는정점 번호가 작은 것을 먼저 방문하고" 표현에 낚이지 마세요.

예를 들어

10 9 1

1 2

1 3

2 5

3 4

3 8

5 6

5 7

4 10

8 9

에서 1에서는 2와 3 둘 중 작은 2를 먼저 방문하고 3을 방문하게 됩니다.

이후 2에서는 5로 방문할 수 있고 3에서는 4와 8을 방문할 수 있어

정점 번호가 가장 작은 4, 5, 8 순서로 방문하는 것으로 구현하였으나 5, 4, 8 순서로 방문해야 정답으로 인정됩니다.

하위 깊이에서도 번호가 작은 순서인 6, 7, 9, 10이 아닌 6, 7, 10, 9 순서로 방문해야 합니다.

(1 2 3 4 5 8 6 7 9 10이 아니라 1 2 3 5 4 8 6 7 10 9이 정답으로 인정됩니다.)



  6  



  2  


  5  


  7  


  1  


  3  


  4  


  10  



  8  


  9  

4, 5, 8은 모두 같은 너비에 위치하는 것으로 파악해서 너비(깊이)를 함께 저장해서 마지막에 정렬하도록 구현했다가 

틀린 부분을 찾지 못해 시간을 엄청 소모했습니다...

하위 가지에서는 문제에서 주어진 정점 번호가 작은 것을 방문한다는 말을 신경쓰지 마시고 

그냥 일반적인 BFS 탐색처럼 구현하셔서 통과하시기 바랍니다.

문제에 제시된 예시에서는 해당 현상을 확인하기 어려운데

글 읽기 - 20% 좀 넘어가다가 틀린것으로 나오는데, 왜 그런지는 잘 모르겠습니다... (acmicpc.net)의 예시가 도움이 되었습니다.

shg9411   3년 전

이해를 잘못 하신 것 같은데, 한 정점에서 갈 수 있는 다른 정점이 여러개일 경우에 작은 정점 먼저 큐에 삽입하라는 것 입니다.

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