jow1025   4년 전

결과적으로 이 부분 때문에 여러번 틀렸었는데,

INF 값을 1억을 선언하니까 맞는데, INF값을 계산할때 최대vertex갯수*가중치최댓값으로 계산하는게맞나요?(edge갯수와는 전혀 무관한건지 궁금합니다.)

맞다면 이 문제에서 최대 1억까지 나올수있으니 1억+1로 선언해야되는것 아닌가요?

djm03178   4년 전

좀 더 타이트하게 하자면 최악의 경우 이용하게 되는 간선의 수는 (정점의 수) - 1이니까, ((정점의 수) - 1) * (가중치의 최댓값) + 1로 설정하면 맞습니다.

jow1025   4년 전

감사합니다~

kyo20111   4년 전

INT_MAX 나 LLONG_MAX 로 INF 값을 설정하면 편하게 쓸 수 있어요

djm03178   4년 전

개인적으로 그 설정은 그다지 좋아하지 않는 편인데, 1이라도 초과하는 순간 오버플로우가 발생할 수 있기 때문에 주의를 해야 하는 경우가 있기 때문입니다.

개인적으로는 두 값을 더하더라도 오버플로우가 나지 않게끔 10억을 조금 넘는 수로 설정하는 것을 선호합니다.

jow1025   4년 전

공부하다가 궁금해서그런데, 큰값을 선언해놓는게 오버플로우와 어떤연관이있나요?  

djm03178   4년 전

INF를 INT_MAX로 해놓으면, 만일 INF로 지정된 값과 다른 양수를 더하는 코드가 있다면 그 즉시 오버플로우가 나게 됩니다.

jow1025   4년 전

아아 그걸 말씀하신거구나. 감사합니다.

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