题解 D. The Pool "蔚来杯"2022牛客暑期多校训练营7

时间:2022-08-10
本文章向大家介绍题解 D. The Pool "蔚来杯"2022牛客暑期多校训练营7,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

传送门

出题人的题解实在是无法令人恭维,特此写一份自己的题解


【大意】

\(T\) 次询问,每次询问给定 \(n, m(1\leq n,m\leq 10^{18})\) ,问长宽分别为 \(n, m\) 的矩形顶点摆放在整点后;所有不同摆放方案中,每个方案完全包含的 \(1\times 1\) 格子数量的和是多少?

我们认为两个方案不同,当且仅当一个方案的矩形无法仅通过平移变换,得到另一个方案。


【分析】

我们将矩形 \(ABCD\) 的一个顶点放置在原点上,设 \(AB=n, AD=m\) ,则 \(B\) 点的点坐标需要满足 \(x_B^2+y_B^2=n^2\)

如果我们能找到所有满足条件的点坐标,那它们显然都是答案的候选(可能有的方案能通过别的方案平移得到、有的方案无法使得 \(D\) 在整点)

因此,当前的问题即是:给定 \(l\) ,如何求解所有满足 \(x_B^2+y_B^2=l\) 的点


转化一下问题,由于二维平面上的整点能唯一地对应复平面上,满足 \(\Re z, \Im z\in Z\) 的所有复数 \(z\) 。因此,我们可以直接以高斯整数 \(Z[i]\) 的方式描述待求问题:

求解有多少个高斯整数 \(z=x_B+i\cdot y_B\) ,使得 \(z\cdot \bar z=l\)

我们考虑将 \(l\) 进行质因数分解,显然可以将 \(l\) 分解为 \(\displaystyle l=2^{c_2}\cdot \prod_i p_i^{k_i} \cdot \prod_i q_i^{t_i}\) 的形式,其中 \(c_2\geq 0, k_i, t_i>0, q_i\)\(4n+3\) 型质数,\(p_i\)\(4n+1\) 型质数

根据高斯质数的规律,\(2=(1+i)(1-i), q_i\) 无法继续分解,而 \(p_i\) 能进一步分解为两个共轭的高斯质数 \((a+bi),(a-bi)\) 的乘积

为了对 \(p_i\) 进行高斯质数意义上的质因数分解,我们可以随机一个 \(t\neq 0\pmod {p_i}\) ,再令 \(\displaystyle k=t^{p_i-1\over 4}\bmod p_i\) 。根据二次剩余的理论,\(k^2\equiv \pm 1\pmod {p_i}\) ,取值为 \(-1\) 的概率恰为 \({1\over 2}\)

所以,我们期望两次随机,就能选出一个 \(k\) ,使得 \(k^2\equiv -1\pmod {p_i}\) ,即 \(p_i\mid (k^2+1)\) 。由于在 \(Z[i]\) 上,\(k^2+1=(k+i)(k-i)\) ,故有 \(p_i\mid (k+i)(k-i)\)

原文地址:https://www.cnblogs.com/JustinRochester/p/16573515.html