코드 43번째 줄에서
dis[j] = min(dis[j], dis[now] + metrix[now][j]);
dis[j]가 더 작은 값으로 업데이트 되면 priority queue에 넣어줘야 합니다.
실제로 그 부분만 고쳐서 해보니 맞았습니다.
1504번 - 특정한 최단 경로
코드 43번째 줄에서
dis[j] = min(dis[j], dis[now] + metrix[now][j]);
dis[j]가 더 작은 값으로 업데이트 되면 priority queue에 넣어줘야 합니다.
실제로 그 부분만 고쳐서 해보니 맞았습니다.
댓글을 작성하려면 로그인해야 합니다.
wxogus25 7년 전
변수 오버플로우도 방지하고 간선 입력받을때 중복된 간선이 있으면 그중 작은 값을 고르도록 해놓고
1 -> x -> y -> n 과 1 -> y -> x -> n 도 구분했는데 왜 안될까요?
(수정)
인접행렬 대신 벡터를 사용하고 우선순위 큐 대신 직접 검사하는 것으로 func 부분을 바꿨더니 통과했습니다....
func 함수 안에있는 if문 아니면 인접행렬과 우선순위 큐 때문인 것 같은데 왜 틀렸는지는 모르겠네요
(통과한 소스 : https://www.acmicpc.net/source/3667231)