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

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

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

다항식 역원 DSL

문제로 돌아가기

해설

초기에는 g=f0−1g=f_0^{-1}g=f0−1​로 두면 fg≡1(modx)fg\equiv 1\pmod{x}fg≡1(modx)이다. 길이 mmm의 역원 ggg를 알고 있을 때 Newton 갱신

g′=2g−fg2(modx2m)g' = 2g-fg^2\pmod{x^{2m}}g′=2g−fg2(mod

을 사용하면 정밀도를 두 배로 늘릴 수 있다. 일반적인 두 번의 full convolution 구현은 정확하지만 N=220N=2^{20}N=220에서 정규화 비용이 약 242424이므로 만점을 받지 못한다.

만점 구성은 q=fg2q=fg^2q=fg2의 필요한 높은 절반을 두 종류의 cyclic convolution으로 복원한다. ggg의 길이는 mmm이고 fff는 길이 2로 잘라서 사용한다.

먼저 길이 2m2m2m의 cyclic convolution으로

u=q mod (x2m−1)u=q\bmod (x^{2m}-1)u=qmod(x2m−1)

을 계산한다. 이는 길이 2m2m2m의 DFT 두 번과 IDFT 한 번으로 얻는다.

다음으로 rrr을 원시 4m4m4m제곱근으로 잡고 j=rmj=r^mj=rm이라 하자. 계수에 rir^ir를 곱하고 를 로 에 대해 접은 뒤 길이 의 cyclic convolution을 계산한다. 역변환 뒤 를 곱하면

vk=qk+jqk+m−qk+2m−jqk+3mv_k=q_k+jq_{k+m}-q_{k+2m}-jq_{k+3m}vk​=qk​+jq

을 얻는다.

0≤k<m0\le k<m0≤k<m에 대해

A=qk,B=qk+m,C=qk+2m,D=qk+3mA=q_k,\quad B=q_{k+m},\quad C=q_{k+2m},\quad D=q_{k+3m}A=qk​,B=q

라 두면

ulow=A+C,uhigh=B+D,u_{\mathrm{low}}=A+C,\qquad u_{\mathrm{high}}=B+D,ulow​=A+C,u v=A+jB−C−jD.v=A+jB-C-jD.v=A+jB−C−jD.

또한 fg≡1(modxm)fg\equiv 1\pmod{x^m}fg≡1(modxm)이므로 q=fg2≡g(modxm)q=fg^2\equiv g\pmod{x^m}q이고 이다. 따라서

−B=j(ulow+v−2g)−uhigh2.-B=\frac{j(u_{\mathrm{low}}+v-2g)-u_{\mathrm{high}}}{2}.−B=2j(ulow​

Newton 갱신에서 새 높은 절반은 정확히 −B-B−B이므로 위 식을 그대로 계산하여 ggg의 뒤에 붙이면 된다.

각 단계는 길이 2m2m2m 변환 세 번과 길이 mmm 변환 세 번을 사용한다. N=2KN=2^KN=2K일 때 총 비용은

3∑k=0K−1(D(2k+1)+D(2k))=(9K−12)N+12.3\sum_{k=0}^{K-1}\left(D(2^{k+1})+D(2^k)\right) =(9K-12)N+12.3k=0∑K−1​(D(2

따라서 N=220N=2^{20}N=220에서

C=8.400000572…<9C=8.400000572\ldots<9C=8.400000572…<9

이므로 만점을 받는다. NNN이 222의 거듭제곱이 아니면 각 단계에서 000으로 패딩하고 마지막에 길이 NNN으로 자르면 된다.

DFT의 주파수 순서를 알 필요는 없다. 같은 길이의 두 DFT 결과를 원소별로 곱하는 연산만 사용하므로 명세가 보장하는 opaque-order 성질만으로 충분하다.

Solution written by GPT5.6

x2m
)
m2m
2m
i
fff
FOLD
xm−1x^m-1xm−1
mmm
r−ir^{-i}r−i
k+m​
−
qk+2m​−
jqk+3m​
k+m
​
,
C
=
qk+2m​,D=
qk+3m​
high
​
=
B+
D,
=
fg2≡
g
(modxm)
A=gkA=g_kA=gk​
+
v
−
2
g
)
−
uhigh​
​
.
k+1
)
+
D
(
2k
)
)
=
(9K−
12)N+
12.