gumdung   4년 전

안녕하세요.

좀 고통받고 있어서 이렇게 질문글을 올립니다.

처음에 double 형을 사용해서 접근하려고 하였으나 이 방법이 틀렸다는걸 깨닫고 

여우 - 간선 가중치 *2

늑대 - 간선 가중치 (빨리갈때),간선 가중치*4(느리게 갈때)


이렇게 두고 두번의 다익스트라(여우,늑대)를 돌렸습니다.

이때 늑대의 상태 테이블은 

0 : 느리게 갈때

1 : 빠르게 갈때 

로 이차원 배열로 두었습니다.

그리하여 하나씩 비교해줘 여우가 가장 빠를때 count 하는 식으로 작성하였는데 이리 바꾸어 보고 저리 바꾸어 봐도 같은 곳에서 막히더라구요.

뭐가 문제가 발생하는지 잘 안보여서 이렇게 도움을 요청합니다.

감사합니다.

sait2000   4년 전

wolf[1][start] = 0을 하면 안 됩니다.

gumdung   4년 전

@sait2000

진심으로 너무 감사드립니다.....ㅠㅠ

덕분에 해결 할 수 있었네요 ㅠㅠ

혹시 반례를 잡아낼수 있는 팁?? 같은게 존재 하실까요??ㅠㅠ

akaishuichi   4년 전

@gumdung

혹시 double로 하면 어떤 문제가 생기나요..? ㅠㅠ

gumdung   4년 전

@akaishuichi

정확한 이유는 잘 모르겠습니다만

정수형이 아닌 실수형을 사용했을때 과연 연산의 결과값이 우리가 생각하는 "정확한 값"이 나올 수 있는가에 대해 의문점이 생기지 않을까요?

/2 를 한다는 연산 자체가 소수점의 범위로 접근 되기 시작하면 double 형의 범위를 넘어갔을때(?) 이 값을 어떻게 표현할 것인지에 대해 생각해 보았습니다.

실제로 pass한 코드를 double형으로만 변경했을때 tle가 발생하네요.

akaishuichi   4년 전

@gumdung 아아 그러겠네요! 친절한 답변 감사합니다><

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