BOJ 34168 $\left(A+Bi\right)^{C+Di}$

BOJ 34168 $\left(A+Bi\right)^{C+Di}$

문제 링크:

문제 내용

생략

문제 풀이

스포일러

먼저 A=B=0A = B = 0인 경우, CC가 양의 정수이고 DD가 0인 경우에만 값이 존재하며, 이 값은 0으로 항상 실수입니다. 따라서 이 경우의 답은 MM입니다.

이제 A+Bi0A + Bi \neq 0이라고 가정하고 식을 전개한 뒤 실수를 모두 제거하면 다음을 얻습니다. 식을 단순화하기 위해 (A,B)(A, B)의 극좌표를 (r,θ)(r, \theta)라고 합시다.

(cos(Dlnr)+isin(Dlnr))(cos(Cθ)+isin(Cθ))(\cos (D \ln r) + i \sin (D \ln r)) (\cos (C \theta) + i \sin (C \theta))

여기서 Dlnr+CθD \ln r + C \thetaπ\pi의 정수배이면 전체 값은 실수입니다. 여기서 두 가지 추측이 필요합니다.

  • lnr0\ln r \neq 0이면, D=0D = 0이어야 가능합니다. lnr0\ln r \neq 0r1r \neq 1, 즉 (A,B){(0,1),(1,0)}(A, B) \notin \{(0, 1), (1, 0)\}과 동치입니다.
  • 정수점으로부터 얻을 수 있는 θ\theta 중에서 π\pi의 유리수배인 것은 모두 π4\frac{\pi}{4}의 정수배입니다. 입력 범위에서 이는 A=0A = 0, B=0B = 0, 또는 A=BA = B일 때만 성립합니다.

이 두 가지 추측을 받아들이면 이제 다음과 같이 경우를 나눠서 답을 구할 수 있습니다. MxM-M \le x \le Mxx 중에서 짝수인 것의 개수를 EE, 4의 배수인 것의 개수를 FF라고 합시다.

  • (A,B)=(1,0)(A, B) = (1, 0)이면 답은 (2M+1)2(2M+1)^2입니다.
  • (A,B)=(0,1)(A, B) = (0, 1)이면 답은 (2M+1)E(2M+1)E입니다.
  • B=0B = 0이면 답은 2M+12M+1입니다.
  • A=0A = 0이면 답은 EE입니다.
  • A=BA = B이면 답은 FF입니다.
  • 그 외의 경우 답은 11입니다.
Last updated on