1β2ββ―βNμ κ°μ Nmod4μ λ°λΌ κ°κ°
N,Β 1,Β N+1,Β 0
μ΄λ€. κ΅¬κ° (1,N)λ 쑰건μ λ§μ‘±ν΄μΌ νλ―λ‘, Nβ‘0(mod4)μ΄λ©΄ μ 체 XORμ΄ Nμ΄ λμ΄ λΆκ°λ₯νκ³ , Nβ‘1(mod4)μ΄λ©΄ μ 체 XORμ΄ 1μ΄ λμ΄ λΆκ°λ₯νλ€.
N<10μΈ κ²½μ°μλ κ°λ₯ν λͺ¨λ μμ΄μ νμΈνλ©΄ N=2μμλ§ μμ΄ [2,1]λ§ μ‘°κ±΄μ λ§μ‘±νλ μμ΄μμ μ μ μλ€. Nβ₯10μΈ κ²½μ°λ Nβ‘0(mod4)μ΄κ±°λ Nβ‘1(mod4)μΈ κ²½μ°λ₯Ό μ μΈνκ³ λ νμ 쑰건μ λ§μ‘±νλ μμ΄μ ꡬμ±ν μ μλ€.
ꡬμ±μ λ€μκ³Ό κ°λ€.
Nβ‘2(mod4)μΈ κ²½μ°,
A=(2,5,Nβ1,6,7,Nβ2,1,8β2,9β2,β¦,(Nβ2)β2,4,3)
Nβ‘3(mod4)μΈ κ²½μ°,
A=(5,1,6,Nβ3,3,Nβ2,4,8β2,9β2,β¦,(Nβ2)β2,7,2)
λ¨Όμ μ΄ μμ΄μ΄ μμ΄μμ νμΈνμ.
Nβ‘2(mod4)μ΄λ©΄
{iβ2β£8β€iβ€Nβ2}={8,9,β¦,Nβ3,N}
μ΄κ³ , λλ¨Έμ§ μ
1,2,3,4,5,6,7,Nβ2,Nβ1
μ λ°λ‘ ν λ²μ© λ±μ₯νλ€.
Nβ‘3(mod4)μ΄λ©΄
{iβ2β£8β€iβ€Nβ2}={8,9,β¦,Nβ4,Nβ1,N}
μ΄κ³ , λλ¨Έμ§ μ
1,2,3,4,5,6,7,Nβ3,Nβ2
μ λ°λ‘ ν λ²μ© λ±μ₯νλ€. λ°λΌμ λ κ²½μ° λͺ¨λ Aλ 1,2,β¦,Nμ μμ΄μ΄λ€.
μ΄μ λ λ²μ§Έ 쑰건μ λ§μ‘±ν¨μ 보μ΄μ. prefix XORμ
P0β=0,Piβ=A1ββA2βββ―βAiβ
λ‘ λλ€. κ΅¬κ° [l,r]μ XORμ
AlββAl+1βββ―βArβ=Plβ1ββPrβ
μ΄λ€. a=lβ1, b=rλΌ λλ©΄ νμ
0β€a<bβ€N
μ΄λ€.
κ΅¬κ° XORμ΄ μ€λ₯Έμͺ½ λμ rκ³Ό κ°λ€λ©΄
PaββPbβ=b
μ΄κ³ , μ΄λ
Paβ=Pbββb
μ λμΉμ΄λ€.
κ΅¬κ° XORμ΄ μΌμͺ½ λμ lκ³Ό κ°λ€λ©΄
PaββPbβ=a+1
μ΄κ³ , μ΄λ
Pbβ=Paββ(a+1)
μ λμΉμ΄λ€.
λ°λΌμ μ λ λ±μμ΄ 0β€a<bβ€Nμμ μ±λ¦½νμ§ μμμ 보μ΄λ©΄ μΆ©λΆνλ€.
λ¨Όμ Nβ‘2(mod4)μΈ κ²½μ°λ₯Ό 보μ. prefix XORμ λ€μκ³Ό κ°λ€. κ°μ΄λ° λ€ μ΄μ 8β€iβ€Nβ2μΈ κ²½μ°μ΄λ€.
iPiββ00β12β27β3(Nβ2)β6β4Nβ2β5(Nβ2)β7β67β76βiβ‘0iβ4βiβ‘17βiβ‘2iβ5βiβ‘36βNβ1Nβ2βN(Nβ2)β3ββ
μ΄ νμμ, 0β€a,bβ€Nμ λν΄
Paβ=Pbββb
κ° μ±λ¦½νλ κ²½μ° μ€ bβ₯1μΈ κ²μ
(a,b)=(Nβ2,4)
λΏμ΄λ€. μ΄λ Nβ₯10μ΄λ―λ‘ a>bμ΄λ€.
λν
Pbβ=Paββ(a+1)
κ° μ±λ¦½νλ κ²½μ° μ€ 0β€aβ€Nβ1, bβ₯1μΈ κ²μ
(a,b)=(Nβ3,3),Β (Nβ1,1)
λΏμ΄λ€. λ κ²½μ° λͺ¨λ a>bμ΄λ€.
λ°λΌμ Nβ‘2(mod4)μΈ κ²½μ°μλ 쑰건μ λ§μ‘±νμ§ μλ ꡬκ°μ΄ μ‘΄μ¬νμ§ μλλ€.
μ΄μ Nβ‘3(mod4)μΈ κ²½μ°λ₯Ό 보μ. prefix XORμ λ€μκ³Ό κ°λ€. κ°μ΄λ° λ€ μ΄μ 8β€iβ€Nβ2μΈ κ²½μ°μ΄λ€.
iPiββ00β15β24β32β4(Nβ3)β2β5(Nβ3)β1β60β74βiβ‘0iβ6βiβ‘15βiβ‘2iβ7βiβ‘34βNβ12βN0ββ
μ΄ νμμ
Paβ=Pbββb
κ° μ±λ¦½νλ κ²½μ° μ€ bβ₯1μΈ κ²μ λ€μλΏμ΄λ€.
첫째, b=1μ΄κ³ Paβ=4μΈ κ²½μ°μ΄λ€. μ΄λ νμμ Paβ=4κ° λλ λͺ¨λ μΈλ±μ€λ a>1=bμ΄λ€.
λμ§Έ,
(a,b)=(Nβ3,4)
μΈ κ²½μ°μ΄λ€. Nβ₯10μ΄λ―λ‘ μ΄λλ a>bμ΄λ€.
λ°λΌμ 첫 λ²μ§Έ λ±μμ a<bμμ μ±λ¦½νμ§ μλλ€.
λν
Pbβ=Paββ(a+1)
κ° μ±λ¦½νλ €λ©΄
a=Nβ1,Pbβ=Nβ2
μ΄μ΄μΌ νλ€. κ·Έλ°λ° PNβ1β=2, PNβ=0μ΄λ―λ‘ Pbβ=Nβ2κ° λλ €λ©΄ λ°λμ b<Nβ1=aμ΄λ€. λ°λΌμ λ λ²μ§Έ λ±μλ a<bμμ μ±λ¦½νμ§ μλλ€.
κ²°κ΅ Nβ‘3(mod4)μΈ κ²½μ°μλ 쑰건μ λ§μ‘±νμ§ μλ ꡬκ°μ΄ μ‘΄μ¬νμ§ μλλ€.
λ°λΌμ μ ꡬμ±μ λͺ¨λ κ°λ₯ν Nμ λν΄ μ‘°κ±΄μ λ§μ‘±νλ μμ΄μ΄ λλ€. μκ° λ³΅μ‘λλ O(N)μ΄λ€.
Solution written by GPT5.5