나는 UVa 문제 세트에서 this graph problem을 연구 중이었습니다. 이는 음의 에지 가중치가없는 단일 소스 최단 경로 문제입니다. 필자가 수집 한 것으로부터, 이러한 문제에 대한 가장 좋은 실행 시간을 가진 알고리즘은 우선 순위 큐로 피보나치 힙을 가진 Dijkstra입니다. 실제로는 바이너리 힙이 구현하기 쉽고 꽤 잘 작동합니다.프로그래밍 콘테스트에 가장 적합한 단일 소스 최단 경로 알고리즘은 무엇입니까?
그러나 바이너리 힙조차도 꽤 많은 시간이 걸리고 경쟁 시간에는 제한이있는 것으로 보입니다. STL이 일부 힙 알고리즘과 우선 순위 대기열을 제공하지만 Dijkstra가 필요로하는 감소 키 기능을 제공하지 않는 것으로 알고 있습니다. 아니면 내가 틀린거야?
다른 가능성은 단순히 Dijkstra 's를 사용하지 않는 것입니다. This forum thread에는 위의 문제를 광범위한 우선 검색/Bellman-Ford로 해결했다고 주장하는 사람들이 있습니다. 코드 작성이 훨씬 쉽습니다. (편집 : OTOH, 우선 순위 대기열에 대한 분류되지 않은 배열을 가진 Dijkstra 's.) BFS/Bellman-Ford는 입력 크기가 상당히 크다고 생각하여 조금 놀랐습니다. 나는 다른 문제가 다른 복잡성의 해결책을 요구할 것이라고 생각하지만, 나의 질문은, 얼마나 자주 그러한 대회에서 Dijkstra를 사용해야 할 것인가? 대신 간단하지만 느린 알고리즘에 대해 더 연습해야합니까?
대부분의 대회가 부스트를 사용할 수 있다고 생각합니다. – int3