2016년 8월 3일 수요일

플로이드 문제를 풀다가...

내가 여태 플로이드 문제를 풀 때, 처음 초기화를 할 때, i와 j사이에 길이 없으면 INF로 초기화해주는데, INF의 값을 2e9;로 했다가 계산 중에 정수 범위를 넘어가는 문제가 발생해서 그냥 입력 비용 제한의 최댓값+1으로 설정했었는데 그러면 안된다. 왜냐하면, 비용의 제한의 최대가 10000이라고 치면 9000씩 여러개의 경로를 통해서 i에서 j로 가는 경로는 10000을 넘는데, INF가 10000이므로 경로가 없다고 할 것이기 때문이다...

그러니까 INF는 나올 수 있는 최대 경로의 길이로 설정해야 한다...

댓글 없음:

댓글 쓰기