hesue615   4년 전

c++을 잘 몰라서 우선 급하게 vector만 이용하였고
나머진 c로 구현했습니다.

도와주시면 감사하겠습니다!

ehddml3   4년 전

1. 일단

5 6
1
5 1 1
1 2 2
1 3 4
2 3 1
2 4 11
3 4 6

이런 반례가 있구용(4까지 가는데 최소는 9인데 위 소스에서는 10이 떠요. 3번때문에 그런 것 같네용)

2. INFINITY 값을 다시 한번 봐보시공

3. 알고리즘에 문제가 있습니다. 

if (dist[list[u][i]->dest] > dist[u] + list[u][i]->cost)
    dist[list[u][i]->dest] = dist[u] + list[u][i]->cost;

이 부분에서 뭔가를  더 추가해줘야할 것 같네용

4. 그리고 이렇게만 바꾸면 시간이 오래걸릴거에용 개선 방법을 찾아보세용

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