【zr25年省选联考day15】B. Prob 做题记录

p=299993p=299993,给定 nn[0,p1][0,p-1] 中的整数对 (xi,yi)(x_i,y_i)qq 次询问,每次给定一个 [0,p1][0,p-1] 中的整数 zz,求满足以下条件的 [0,p1][0,p-1] 中的整数对 (x,y)(x,y) 的个数:

((xxi)2+(yyi)2)z(modp)\prod((x-x_i)^2+(y-y_i)^2)\equiv z\pmod p

1n1001\le n\le 1001q<p1\le q< p

考虑找到模 pp 域下的“虚数” t21(modp)t^2\equiv -1\pmod p,然后应用平方差公式:(和的乘积化为乘积的乘积)

((xxi)2+(yyi)2)=((xxi)2(tytyi)2)=(xxi+tytyi)(xxity+tyi)=((x+ty)(xi+tyi))((xty)(xityi))\begin{aligned} \prod((x-x_i)^2+(y-y_i)^2)&=\prod((x-x_i)^2-(ty-ty_i)^2)\\ &=\prod(x-x_i+ty-ty_i)(x-x_i-ty+ty_i)\\ &=\prod((x+ty)-(x_i+ty_i))\prod((x-ty)-(x_i-ty_i))\\ \end{aligned}

注意到有序对 (x,y)(x,y)(x+ty,xty)(x+ty,x-ty) 构成双射,故仅需关心 x+tyx+tyxtyx-ty

G(x)=(x(xi+tyi))G(x)=\prod(x-(x_i+ty_i))H(x)=(x(xityi))H(x)=\prod (x-(x_i-ty_i)),那么 F(x+y2,xy2t)=G(x)H(y)F(\frac{x+y}{2},\frac{x-y}{2t})=G(x)H(y)

所以只需要求有多少个 (x,y)(x,y) 满足 G(x)H(y)=zG(x)H(y)=z

一个个代入求出 G([0,p1])G([0,p-1])H([0,p1])H([0,p-1]),再做 FFT 即可。注意这里是 aibja_ib_j 贡献到 cijc_{ij},故需要对原根取对数。

感觉一下答案不会很大,所以直接做 NTT 也可以。