기존에는 for(int i=2; i<=N; i++) if(Find(1) == Find(i)) ++ans;으로 정답을 구하긴 했었습니다. Union을 하면서 각 컴퓨터 번호에 대해 Size를 계산하고 출력하는 형식으로 해보려 바꾸어 보았는데 오답이 나와서 질문드립니다. 1번 컴퓨터에 대한 set size를 구하고, 1번 컴퓨터를 제외한 나머지 수를 출력하면 된다고 생각했는데 이 방법이 틀린건가요? 질문에 있는 반례를 넣어보아도 틀린 반례를 찾기 어려워서 질문드립니다.
cesta123 4년 전
기존에는 for(int i=2; i<=N; i++) if(Find(1) == Find(i)) ++ans;으로 정답을 구하긴 했었습니다. Union을 하면서 각 컴퓨터 번호에 대해 Size를 계산하고 출력하는 형식으로 해보려 바꾸어 보았는데 오답이 나와서 질문드립니다. 1번 컴퓨터에 대한 set size를 구하고, 1번 컴퓨터를 제외한 나머지 수를 출력하면 된다고 생각했는데 이 방법이 틀린건가요? 질문에 있는 반례를 넣어보아도 틀린 반례를 찾기 어려워서 질문드립니다.