leejh3907   3년 전

밸만포드 알고리즘을 이용했습니다.

음의 사이클 존재 또는 출발노드의 값이 음수가 되었을경우 Yes를 출력하게 했습니다.

어떻게된건지 계속 오답이 나오더군요...

어떤 반례가 있는지, 어느부분에서 실수를 한것인지 모르겠습니다. 도와주실수 있을까요?

tizm423   3년 전

위 코드로는 음수사이클의 존재를 알 수 없습니다.

leejh3907   3년 전

if(dist[next]>dist[j]+d)

{

dist[next]=dist[j]+d;

if(i==a) cycle=true; //마지막 루프에 값이 갱신된다면 음의 사이클이 존재한다고 판단.

}

입력을 받을때 단방향으로 노드를 연결하니 틀렸습니다가 나왔었네요..

v[s].push_back({e, t});뒤에

v[e].push_back({s, t});를 추가해 양방향으로 만들어주니 맞았습니다가 나왔습니다.

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