kth990303   3년 전

크루스칼로 두 섬이 연결이 됐을 때, 그 때의 중량제한이 최대라 생각하여 아래와 같이 크루스칼 알고리즘을 이용했습니다.

적절한 반례를 생성해서 대입해봐도 이 코드를 저격하는 반례를 찾기 어렵네요.

반례나 로직에 틀린 점이 있다면 알려주시면 감사하겠습니다.


+) 맞왜틀 하시는 분들을 위해 테케를 추가합니다.

kth990303   3년 전

저는 바보였습니다...

40번째 줄에 M번만 진행하면 안되더군요. 양방향이니까 2*M인데...

도움받은 테케는 아래와 같습니다.

amenable_c   8달 전

정리해주신 테케 덕분에 도움 받고 갑니다.

6 12
1 2 7
1 3 8
1 4 7
1 6 9
2 3 7
3 4 7
3 5 7
4 5 7
4 6 7
3 6 7
1 3 11
5 6 12
6 3

크루스칼을 이용할 때 공장이 있는 도시 2개를 방문한 것만 체크하는 것이 아니라, 두 도시가 연결 되었는지 find()를 통해 검사 또한 진행했어야 했네요.

감사합니다.

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