1. memset은 바이트 단위로 초기화하는 함수이기 때문에 255보다 큰 수는 원하는 대로 값을 넣을 수 없습니다.
2. 그럴 리가 없습니다. 코드를 봐도 cout << "-1"; 이라는 구문은 보이지 않습니다. cout << "-1\n";만 있을 뿐입니다. 정말로 cout << -1;을 한 후에도 '\n'을 출력하셨나요?
3. 그렇게 하면 모든 노드에 대한 최단거리를 구할 수 없습니다. 사이클의 길이가 1보다 큰 경우에도 사이클이 있는지 여부를 판단할 수 없습니다.
lys9546 4년 전
벨만포드에 대해 검색해보고
작성해본 코드입니다.
1. 아래 주석보면 memset으로 했을때는 쓰레기값이 출력되고 fill로 바꿀때는 정답이 나오던데
차이점에 대해서 질문드리고 싶습니다.
2. 처음에는 cout << -1; 이렇게 작성해서 틀려 혹시나 싶어
cout<<"-1"; 로 수정해서 정답이 나왔는데
차이점에 대해서 궁금합니다
3. 마지막 벨만포드 알고리즘에서
아래에는 3중 for문이 나오는데
마지막 밖에 있는 for 문대신에
2차원 for문으로 두번 돌고
차이즘을 분별하여 음수 cycle만 찾으면 되지 않나는 의문점이 생겼습니다.