DOJ logoDOJ
문제
최근 추가된 문제들저장한 문제문제집
카테고리DLC대회그룹팀게시판
랭킹
문제 풀이 랭킹스트릭 랭킹DOJ Power 랭킹
현황
문제 제안로그인회원가입
DOJ logoDOJ

OI 서브태스크 채점, Elo 레이팅, Discord 인증을 갖춘 커뮤니티 온라인 저지.

문제
문제 목록카테고리
커뮤니티
대회랭킹게시판공지사항외부 대회 개최이용 안내
계정
로그인회원가입채점 현황
정책
이용약관DLC 이용 규칙개인정보 처리방침API 사용 설명서언어별 채점 환경대회 순위 보상레이팅과 퍼포먼스
© 2026 DOJ
모든 권리 보유
해설

이어진 사이

문제로 돌아가기

해설

각 정수의 서로 다른 소인수를 이용하여 연결 컴포넌트를 구한다.

같은 소수 ppp로 나누어떨어지는 정점들은 모두 서로 간선으로 연결되므로 같은 연결 컴포넌트에 속한다. 소수 ppp를 포함하는 정점 중 대표 정점 하나만 기억하면, 이후 ppp를 소인수로 가지는 정점을 그 대표 정점과 합칠 수 있다.

에라토스테네스의 체로 각 정수의 최소 소인수를 전처리한다. 각 AiA_iAi​를 소인수분해하면서 중복되지 않는 모든 소인수 ppp를 확인하고, ppp의 대표 정점과 iii를 서로소 집합 자료구조로 합친다. Ai=1A_i=1Ai​=1이면 소인수가 없으므로 다른 정점과 합치지 않는다.

임의의 간선 (i,j)(i,j)(i,j)에 대해서는 Ai,AjA_i,A_jAi​,Aj​에 공통 소인수가 존재하므로 두 정점이 합쳐진다. 반대로 합치기를 수행하는 두 정점은 어떤 소인수를 공유하므로 실제 그래프에서도 간선으로 연결된다. 따라서 서로소 집합의 연결 관계는 원래 그래프의 연결 관계와 정확히 일치한다.

각 질의는 두 정점의 대표가 같은지 확인하여 답한다. u=vu=vu=v이면 항상 대표가 같다.

M=max⁡AiM=\max A_iM=maxAi​라고 하면, 시간 복잡도는 O(Mlog⁡log⁡M+Nlog⁡M+Qα(N))O(M\log\log M + N\log M + Q\alpha(N))O(MloglogM, 공간 복잡도는 이다.

Solution written by GPT6

+
NlogM+
Qα(N))
O(M+N)O(M+N)O(M+N)