「Luogu-U18201」分析矿洞

题目

没有看懂题目呢说的是什么,但是我们要求的是这个式子

\[Ans=\sum_{i=1}^n\sum_{j=1}^n\varphi(gcd^2(i,j)) \]

看起来挺鬼畜的是吧

老方法枚举\(gcd\)

\[Ans=\sum_{i=1}^n\varphi(i^2)f(\left \lfloor \frac{n}{i} \right \rfloor) \]

其中

\[f(d)=\sum_{i=1}^{\left \lfloor \frac{n}{d} \right \rfloor}\sum_{j=1}^{\left \lfloor \frac{n}{d} \right \rfloor}[(i,j)=1] \]

非常显然的是

\[f(d)=2\times \sum_{i=1}^d\varphi(i)\ -1 \]

于是可以考虑对\(f(\left \lfloor \frac{n}{i} \right \rfloor)\)分块

所以我们需要的是\(\varphi(i^2)\)的前缀和

还有一个非常显然的东西就是

\[\varphi(i^2)=i\varphi(i) \]

考虑\(\varphi\)的公式

\(n\)

\[n=\prod\limits_{i=1}^{N}p_{i}^{r_{i}} \]

\[\varphi(n)=\prod\limits_{i=1}^{N}(p_i-1)p_i^{r_i-1} \]

\[\varphi(n^2)=\prod\limits_{i=1}^{N}(p_i-1)p_i^{2r_i-1}=\prod\limits_{i=1}^{N}(p_i-1)p_i^{r_i-1}p_i^{r_i} \]

\[=\prod\limits_{i=1}^{N}(p_i-1)p_i^{r_i-1}\times \prod\limits_{i=1}^{N}p_{i}^{r_{i}}=\varphi(n)\times n \]

于是设

\[F(i)=i\varphi(i) \]

于是

\[Ans=\sum_{i=1}^nf(\left \lfloor \frac{n}{i} \right \rfloor)F(i) \]

\(F\)函数的前缀和即可

由于数据范围很大,考虑杜教筛

根据一番暴力枚举我们应该让\(F\)\(id\)卷一下

\[(F\times id)(i)=\sum_{d|i}d\varphi(d)\frac{i}{d} \]

\[=i\sum_{d|i}\varphi(d)=i^2 \]

拿出杜教筛套路

\[S(n)=\sum_{i=1}^n(F\times id)(i)-\sum_{i=2}^nid(i)S(\left \lfloor \frac{n}{i} \right \rfloor) \]

\[=\frac{n(n+1)(2n+1)}{6}-\sum_{i=2}^nid(i)S(\left \lfloor \frac{n}{i} \right \rfloor) \]

不就没了吗

当然\(\left \lfloor \frac{n}{i} \right \rfloor\)也会很大,所以还要杜教筛一个欧拉函数

代码

怎么可能有

posted @ 2019-01-30 19:27  asuldb  阅读(174)  评论(0编辑  收藏  举报