priority_queue는 Max Heap 구조를 띄고 있어서, 저대로 선언하시면 최소값을 찾아야하는 Dijkstra 알고리즘에선 말 그대로 최장비용 거리를 구하는 알고리즘으로 변해버릴 수 있습니다.
distance값에 음수를 부여해 다시 복구할 때는 음수로 둬서 최소 힙처럼 유지를 하시거나, priority_queue<pair<int, int>, vector<pair<int, int>, greater<pair<int, int>>>로 선언을 변경하세요.
후자의 경우 #include <functional>을 추가해야 정상 동작합니다!
rhkd2612 6년 전
처음에 시도했을때 시간초과가 뜨길래
어떤 블로그를 참고해서 조금씩 수정해도 무조건 될거같은게 안되서 거의 완벽히 수정했는데도 블로그 코드는 통과고
제 코드는 시간초과가 뜨네요 이유좀 알려주실수 있나요 ㅠ
참고 블로그 - http://browoo.tistory.com/entry/문제1753-최단경로다익스트라