BOJ 24733 - 이것도 XOR해 보시지

image.png

O(NK)O(NK)로 해결 가능하다.

00번째 수와 모든 수를 쿼리해서 n1n-1 번의 쿼리를 써서 만든 배열을 RR이라 하자.

00번째 수와 \oplus 했을 때 00이 나오면 그것과 같다는 의미이다.

k=1,2,k=1,2,\dots 을 반복하며 t0=kt_0=k 로 두고 모든 다른 수를 kRik \oplus R_i 를 해준다.

Ri=a0aiR_i=a_0 \oplus a_i 이기 때문에 kRi=kkai=aik \oplus R_i = k \oplus k \oplus a_i=a_i 가 되기 때문이다.

이렇게 각 kk마다 만들어진 배열을 TT라 할 때,

TT가 문제의 조건(1pk1 \le p \le k)에 맞게 수들이 배치가 되었는지 살핀다.

그렇다면 그것이 정답이고 아니라면 kk를 계속 증가시킨다.

Tags:

Categories:

Updated:

Comments