[关闭]
@pinkex 2018-08-20T14:09:05.000000Z 字数 2906 阅读 568

ProjectEuler_做题记录

简单记录一下。

problem 441 The inverse summation of coprime couples

神仙题。考虑答案为:


我们考虑构造三个函数:

事实上,我们可以解出这三个函数的递归式,然后做到预处理。
然后最后的式子会变成:

然后就可以根据调和级数做到

problem 530 GCD of Divisors

由于直接化简比较困难,考虑将整个答案一起化简:


对后面部分使用除法分块,复杂度就是

problem 233 Lattice points on a circle

首先要知道一个结论——费马平方和定理。具体的证明网上很多,就不讲了。其实是挺妙的。费马平方和定理:如果一个质数能表示成4n+1的形式,这个数一定能分解成两个完全平方数的和。
事实上,这个分解是唯一的。这可能要用到环论的知识。

首先一点,很容易证明对于一个数x,满足
这样,对于所有情况,都可以先变成n是偶数的情况,然后将圆心移动至原点处,对答案也是没有影响的。
然后对于任意一个数n,将它不断除以2,知道它是奇数,这段时间内答案都是不变的。因为对于一个偶数n,满足的x,y只有可能都是偶数,这样x/2, y/2就可以作为n/2的一组合法解。这样我们只需要考虑n是所有奇数的情况了。

然后就发现不会做了。发现有点不对劲。

有一个解法好像很简明,用到了高斯素数的理论。
答案其实等于范数为的高斯整数的个数。
高斯整数公式(表示范数为的高斯整数个数):


其中,将n因子分解有

是模4余1的质数,是模4余3的质数。

则指数有这么几种情况:

然后暴枚所有情况即可,即在满足上面的某种情况时,再乘上2的几次幂,还有一些模4余3的质数的几次幂,小于N的情况(状态数非常少,可以很快跑出来)。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注