首页 > 其他 > 详细

[CF809E] Surprise me!

时间:2019-06-17 00:06:42      阅读:128      评论:0      收藏:0      [点我收藏+]

先要推式子
\[ \begin{aligned} \varphi(x)\varphi(y)&=(x\prod_{p|x}\frac{p-1}p)(y\prod_{p|y}\frac{p-1}p)\&=(\prod_{p|xy}\frac{p-1}p)(\prod_{p|\gcd(x,y)}\frac{p-1}p)xy\&=\varphi(xy)\varphi(\gcd(x,y))xy \end{aligned} \\\Rightarrow \varphi(xy)=\frac{\varphi(x)\varphi(y)\gcd(x,y)}{\varphi(\gcd(x,y))}\\]
接着堆式子
\[ \begin{aligned} ans&=\sum_i\sum_{i}\varphi(a_ia_j)dis(i,j)\&=\sum_{d=1}^n\frac{d}{\varphi(d)}\sum_i\sum_j\varphi(a_i)\varphi(a_j)dis(i,j)[\gcd(a_i,a_j)=d] \f(d)&=\sum_i\sum_j...[\gcd(a_i,a_j)=d] \g(d)&=\sum_{d|x}f(x)\&=\sum_i\sum_j...[d|\gcd(a_i,a_j)]\&=\sum_{d|a_i}\sum_{d|a_j}\varphi(a_i)\varphi(a_j)(dep_i+dep_j-2dep_{lca(i,j)})\&=\sum_{d|a_i}\varphi(a_i)\sum_{d|a_j}\varphi(a_j)(dep_i+dep_j-2dep_{lca(i,j)})\&=2\sum_{d|a_i}\varphi(a_i)dep_i\sum_{d|a_j}\varphi(a_j)-2\sum_{d|a_i}\varphi(a_i)\sum_{d|a_j}\varphi(a_j)*dep_{lca(i,j)} \f(d)&=\sum_{d|x}\mu(\frac{x}d)g(x)=\sum_{i=1}^{\lfloor\frac{n}d\rfloor}\mu(i)g(di) \ans&=\sum_{d=1}^n\frac{d}{\varphi(d)}f(d)\&=\sum_{d=1}^n\frac{d}{\varphi(d)}\sum_{i=1}^{\lfloor\frac{n}d\rfloor}\mu(i)g(di)\&=\sum_{T=1}^ng(T)\sum_{d|T}\mu(\frac{T}d)\frac{d}{\varphi(d)} \h(T)&=\sum_{d|T}\mu(\frac{T}d)\frac{d}{\varphi(d)} \\end{aligned} \]
留意到\(h(T)\)可以直接筛。而\(g(T)\)也是可以“筛”的(建立虚树,自底向上的带权根径覆盖),然后把这俩玩意儿数乘……

简直绝了,复杂度是\(O(b\log n)\)级别的

代码留坑……

[CF809E] Surprise me!

原文:https://www.cnblogs.com/nosta/p/11033914.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!