Project Euler

PE708 Twos are all you need

考虑各种筛法,然后考虑一些比较妙的做法。

你考虑 \(PN\) 筛,考虑 \(g(p)=f(p)=2\) ,构造 \(g(n)=d(n)\) ,其中 \(d\) 表示约数个数。

考虑快速求 \(d\) 的前缀和可以用很慢的杜教筛,或推推式子,具体的:

\(\sum_{i=1}^{n} d(n)=\sum_{i=1}^{n} \sum_{d|i}1=\sum_{d=1}^{n} \sum_{i=1}^{\lfloor\frac{n}{d}\rfloor} 1=\sum_{d=1}^{n} \lfloor\frac{n}{d}\rfloor\)

然后你发现复杂度有点高,对于 \(f=g * h\) ,你不可以用递推算出 \(h\) 的值,否则复杂度会飙升到 \(O(n^{\frac{1}{2}} \log n)\)

于是你写出式子:

\(2^{k-1}=\sum_{j=1}^{k} j h_{i,k-j}\)

\(2^{k-2}=\sum_{j=1}^{k-1} j h_{i,k-1-j}=\sum_{j=2}^{k} (j-1) h_{i,k-j}\)

两式相减:

\(2^{k-2}=\sum_{j=0}^{k-1} h_{i,j}\)

\(2^{k-1}=\sum_{j=0}^{k} h_{i,j}\)

可得 \(h_0=1,h_1=0,h_{j}=2^{j-2} (j \geq 2)\)

于是可以 \(O(1)\)\(h\) ,复杂度变成了 \(O(n^{\frac{1}{2}})\) ,大概在 \(12s\) 内能跑出 \(10^{14}\)

PE639 Summing a multiplicative function

我们考虑 \(PN\) 筛,对于不同的 \(k\) ,我们分开考虑,考虑 \(g(p)=f(p)=p^k\) ,直接构造 \(g(n)=n^k\)

那么考虑怎么快速求 \(\sum_{i=1}^{n} g(i)=sum_{i=1}^{n} i^k\)

发现 \(k\) 很小,于是考虑 \(O(k)\) 的拉格朗日插值,于是你就乱搞做,于是你不推 \(h\) 的通项式得到了一个 \(O(\sqrt{n} k^2 \log n)\) 的做法。

我不会告诉你我跑了 50s 。

PE484 Arithmetic Derivative

这题有点麻烦,是个复合函数,设 \(G(k)=k^{\prime}\) .

仍然考虑 \(PN\) 筛,但是你需要证明 \(\gcd(k,G(k))\) 是个积性函数。

\(x,y, x\bot y\) ,由 \(G\) 的定义:

\(\gcd(xy,G(xy))=\gcd(xy,G(x)y+G(y)x)\)

由于 \(x\bot y\) ,设 \(d=\gcd(x,G(x)),t=\dfrac{G(x)}{d},p=\dfrac{x}{d}\) ,有 \(t \bot p\)

\(\gcd(xy,G(x)y+G(y)x)=d\gcd(py,ty+G(y)p)\)

由于 \(x\bot y\) ,有 \(x\bot p\) 所以只有 \(G(y)\) 还能产生贡献,设 \(a=\gcd(y,G(y)),b=\dfrac{G(y)}{a},c=\dfrac{y}{a}\)

\(d\gcd(py,ty+g(y)p)=da\gcd(pc,tc+pb)\) ,此时有 \(p \bot c,t\bot p,c\bot b\) ,只能再产生贡献的只有 \(\gcd(t,b)\) ,但显然的事实是 \(pc \bot \gcd(t,b)\)

于是 \(\gcd(xy,G(xy))=da\gcd(pc,tc+pb=da=\gcd(x,G(x)) \gcd(y,G(y))\)

那么它一定是积性的。

于是我们开始构造 \(g(p)=f(p)=\gcd(p,G(p))=1\)

于是我们拿出了 \(e(n)=1\)

然后你迅速写出了 \(O(\sqrt{n} \log n)\) ,然后你跑了 \(100s\) 还没跑出来,看了一眼数据范围,\(5 \times 10^{15}\)

于是你又得推 \(h\) ,你发现你归纳法算了一发 \(g(p^c)=c p^{c-1}\) ,那么 \(\gcd(p^c,g(p^c))=\gcd(p^c,c p^{c-1})=p^{c-1}\gcd(p,c)\)

然后归纳法一下 \(h\) ,你又可得 \(h_i=2^{i-2}\)

复杂度 \(O(\sqrt{n})\)

大概跑个 \(30s\) 就能跑完。

主要是 int128 太gb慢了

posted @ 2022-08-10 10:36  Detect-Perplexity  阅读(47)  评论(0编辑  收藏  举报