51nod1226

题意

51nod

做法

(p=frac{x^4-y^4}{x^3+y^3},pin prime)
(d=(x,y)),将原(x,y)改写成(dx,dy,(x,y)=1)
原式等价于(p(x^3+y^3)=d(x^4-y^4)Longrightarrow p(x^2-xy+y^2)=d(x-y)(x^2+y^2))

(x-y=1)

证明:
(x^2-xy+y^2=frac{d(x-y)(x^2+y^2)}{p})(x^2-xy+y^2<x^2+y^2)(p|(x^2+y^2))
(frac{x^2-xy+y^2}{(x-y)}=frac{d(x^2+y^2)}{p})
((x^2-xy+y^2,x-y)!=1),则((x,y)!=1),故((x^2-xy+y^2,x-y)=1)(x-y=1)

(p(x^2-xy+y^2)=d(x-y)(x^2+y^2)Longrightarrow p(x^2+x+1)=d(2x^2+2x+1))
((x^2+x+1,2x^2+2x+1)=1)(p=2x^2+2x+1,d=x^2+x+1)

由于(d)没有限制,所以只要满足(p=2x^2+2x+1,pin prime)就好了

暴力(O(sqrt R))(2x^2+2x+1),然后(O(sqrt V))判断

考虑(2x^2+2x+1)被素数(p)整除,(2x^2+2x+1equiv 0(mod~p)Longrightarrow frac{-1pm sqrt {-1}}{2}mod~p)
(f(x)=2x^2+2x+1)。若(f(x_0)equiv 0(mod~p)),则(f(p-1-x_0)equiv 0(mod~p))。这说明最小的两个解分别是(<frac{p}{2},>frac{p}{2})

如下算法:
(a_i=2i^2+2i+1),从(i=1)开始枚举,若(a_i)没被改变过且(in[L,R]),则更新答案
向后将(a_j(j>i))中的(a_i)因子去掉

证明算法正确性:
首先枚举到(a_i)时,其必定是(1)或素数。假设其有质因子(p,q),由于(i)是最小整数解,(i<p,i<qLongrightarrow 2i^2+2i+1<pq)。矛盾。
同理(2i^2+2i+1<p^2)

但这样是(O(cnt^2))的,考虑优化:
(f(x)equiv 0(mod~p)Longrightarrow f(x\%p)equiv 0(mod~n))

这题要用vector,不然过不去

原文地址:https://www.cnblogs.com/Grice/p/12770287.html