BOJ 26973 - Circular Barn

image.png

직접 NpositionN-\text{position}인지를 검사해보면 n0(mod4)n \equiv 0 \pmod 4 가 아닐 때 항상 이긴다는 것을 알 수 있다.

이는 소수중에 44의 배수가 없고 1,2,31,2,3 은 항상 지울 수 있다는 것에서 유도된다.

하지만 그냥 직접 몇개를 돌려봐도 바로 알 수 있다.

Nhoj가 이길 수 있는 수를 생각해본다.

어떤 수 xx4x4 \mid x라면 가장 느리게 끝나게 만드는 횟수, 4x4 \nmid x라면 가장 빠르게 끝나게 횟수를 f(x)f(x)라 하자. 예를 들어, f(1)=1, f(4)=2, f(p)=1  (p소수)f(1)=1,~f(4)=2,~f(p)=1~~ \left(p \in \text{소수}\right) 이다.

John은 4ai4 \nmid a_iii들에 대해 빠르게 게임을 끝내길 원할 것이고, 4ai4 \mid a_iii들에 대해 최대한 느리게 게임을 끝내길 원할 것이다.

4x4 \mid x 라면 f(x)f(x)는 짝수이고 4x4 \nmid x라면 f(x)f(x)는 홀수이다.

Nhoj가 이기기 위한 전략을 보자.

ai0(mod4)a_i \equiv 0 \pmod 4 이고 Minj=0i1f(aj)>f(ai)+2 AND Minj=i+1n1f(aj)>f(ai)\text{Min}_{j = 0}^{ i - 1 } f(a_j) > f(a_i)+2 \text{~AND~} \text{Min}_{ j = i + 1}^{ n - 1 } f(a_j) > f(a_i) 여야 한다.

여기서 jj4aj4 \nmid a_jjj들이다.

f(x)f(x)만 적절히 전처리하면 문제가 해결된다.

4x4 \nmid x 일 때 가장 빨리 끝내는 방법은 pxp \le x인 소수나 11pp중에 px(mod4)p \equiv x \pmod 4인 가장 큰 pp를 고르는 것이다.

그래야 xp0(mod4)x-p\equiv 0 \pmod 4 가 되고 상대방에게 44의 배수를 줄 수 있다.

4x4 \mid x 일 때 가장 느리게 방법은 사실 p=2p=2 인 경우이다. 왜냐면 pp 중 짝수인건 22밖에 없고 그럼 상대방도 어쩔수 없이 나에게 다시 44의 배수를 주기 위해 22만 뺄 것이기 때문이다.

USACO 정해에선 귀납적으로 x0(mod2)x \equiv 0 \pmod 2 인 경우엔 f(x)=x2f(x)=\dfrac{x}2 라고 설명한다.

Tags:

Categories:

Updated:

Comments