lcy960729   3년 전

disjoint Set으로 문제 접근하였습니다. 모든 입력을 받고 라운드를 받을때 멘토를 짜를 학생들을 저장해 둡니다. 이후 멘토를 짜를 학생들을 제외한 모든 학생들을 union합니다. 입력 받은 쿼리를 라운드를 기준으로 내림차순으로 정렬합니다. 이후 이전 라운드값을 저장해두고 현재 라운드값과 다르면 union을 합니다. 방금 문장 과정을 반복합니다. (1번 라운드에 대해서 결과를 다 저장하고 0번 라운드순서가 되면 1번 라운드 학생을 union하게 됨) 이후 값을 출력합니다. 

문제 접근 과정은 여기 까지고 어떠한 부분이 틀린지 알고싶습니다 ㅠ 이해를 돕기위해 코드 첨부하겠습니다.

palilo   3년 전

만약 멘토가 없다면 아무것도 하지 않는다. 그다음 라운드를 종료한다.

저 문장 때문에 그렇습니다.

이거랑 비슷한 대부분의 문제에선

1. a-b 연결을 할 땐 기존에 a-b사이에 간선이 없었음이 보장된다.

2. a-b 연결을 끊을 땐 기존에 a-b사이에 간선이 있었음이 보장된다.

이런 조건이 있지만 이 문제는 그렇지 않습니다. 저도 똑같이 틀렸네요;

39dll   3년 전

덕분에 맞았습니다...

감사합니다!!

lcy960729   3년 전

저두 덕분에 맞았습니다 감사합니다 ㅠ

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