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

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

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

XOR Network

문제로 돌아가기

해설

C≥NC\geq NC≥N이면 간선이 없는 t=0t=0t=0에서도 조건을 만족하므로 정답은 000이다. 이하에서는 C<NC<NC<N인 경우를 생각하자. t>0t>0t>0이고 2M≤t<2M+12^M\leq t<2^{M+1}2M≤t<2M+1이라고 하자. 정점을 번호 순서대로 크기 2M+12^{M+1}2M+1인 블록으로 나누면 각 블록이 정확히 하나의 연결 요소가 된다. 마지막 블록의 정점 수가 더 적어도 마찬가지이다. 따라서 연결 요소의 개수는

⌈N2M+1⌉\left\lceil\frac{N}{2^{M+1}}\right\rceil⌈2M+1N​⌉

이다. 이 값은 ttt가 2M2^M2M부터 2M+1−12^{M+1}-12M+1−1까지 변하는 동안 일정하다. 그러므로 가장 작은 tt는 의 거듭제곱 중 하나이다. 부터 시작하여

⌈N2p⌉≤C\left\lceil\frac{N}{2p}\right\rceil\leq C⌈2pN​⌉≤C

가 될 때까지 ppp를 두 배로 늘리면 된다. 처음으로 조건을 만족하는 ppp가 정답이다. 천장 함수는 양의 정수 xxx, yyy에 대한 등식 ⌈x/y⌉=⌊(x+y−1)/y⌋\lceil x/y\rceil=\lfloor(x+y-1)/y\rfloor⌈x/y⌉를 이용하여 계산할 수 있다. 시간 복잡도는 이고, 추가 공간 복잡도는 이다.

증명

L=2M+1L=2^{M+1}L=2M+1이라 하고, qqq번째 블록을 qL≤v<(q+1)LqL\leq v<(q+1)LqL≤을 만족하는 정점 들의 집합으로 정의하자. 실제로 존재하는 정점만 포함하므로 마지막 블록은 개보다 적은 정점을 포함할 수도 있다. 서로 다른 블록에 있는 두 정점의 번호는 번째 이상의 비트 중 적어도 하나가 다르다. 따라서 두 번호의 XOR은 이상이며 보다 크다. 서로 다른 블록을 잇는 간선은 없다. 한 블록의 첫 정점 번호를 이라고 하자. 이 블록의 임의의 정점 에서, 번호의 번째부터 번째 비트 중 켜져 있는 비트를 하나씩 끄면 에 도달한다. 번째 비트를 끄는 한 단계에서 두 정점 번호의 XOR은 이므로 두 정점 사이에 간선이 있다. 이 과정에서는 상위 비트가 변하지 않으므로 계속 같은 블록에 머문다. 또한 번호가 감소하기만 하므로 모든 중간 정점의 번호는 이상이고 처음의 이하이다. 따라서 마지막 블록이 완전히 채워져 있지 않아도 모든 중간 정점이 존재한다. 블록의 모든 정점이 와 연결되므로 각 블록은 하나의 연결 요소이다. 블록의 개수는 이므로 연결 요소의 개수도 이다. 이 개수는 인 동안 변하지 않으므로 해당 구간에서는 가장 작은 값 만 확인하면 된다. 이면 은 조건을 만족하지 않는다. 를 순서대로 확인하면 조건을 만족할 수 있는 모든 구간의 시작점을 작은 순서대로 확인하게 된다. 따라서 처음으로 조건을 만족하는 값이 정답이다.

Solution written by GPT6

t
222
p=1p=1p=1
=
⌊(x+
y−
1)/y⌋
O(log⁡N)O(\log N)O(logN)
O(1)O(1)O(1)
v
<
(q+
1)L
vvv
LLL
M+1M+1M+1
2M+12^{M+1}2M+1
ttt
b=qLb=qLb=qL
vvv
000
MMM
bbb
mmm
2m≤2M≤t2^m\leq 2^M\leq t2m≤2M≤t
bbb
v<Nv<Nv<N
bbb
⌈N/L⌉\lceil N/L\rceil⌈N/L⌉
⌈N/2M+1⌉\lceil N/2^{M+1}\rceil⌈N/2M+1⌉
2M≤t<2M+12^M\leq t<2^{M+1}2M≤t<2M+1
t=2Mt=2^Mt=2M
C<NC<NC<N
t=0t=0t=0
1,2,4,…1,2,4,\ldots1,2,4,…