[转载]CF809E Surprise me!

首先我们需要知道一个这样的性质:

ϕ(ab)=ϕ(a)ϕ(b)gcd(a,b)ϕ(gcd(a,b))\phi(ab)=\frac{\phi(a)\phi(b)\gcd(a,b)}{\phi(\gcd(a,b))}

我:???

这个由ϕ(n)=np(11p)\phi(n)=n\prod_{p}(1-\frac{1}{p})容易验证

这样有啥好处呢?我们就召唤出了反演中最喜欢的gcd!

然后我们套路地枚举个gcd召唤个mu,枚举t=gdt=g*d

然后就可以推出这样的柿子:

t=1ndtdμ(td)ϕ(d)i=1ntj=1ntϕ(it)ϕ(jt)dis(pos[it],pos[jt])\sum_{t=1}^n\sum_{d|t}\frac{d*\mu(\frac{t}{d})}{\phi(d)}\sum_{i=1}^{\frac{n}{t}}\sum_{j=1}^{\frac{n}{t}}\phi(it)\phi(jt)dis(pos[it],pos[jt])

其中pos[i]pos[i]表示权值为i的是第几个点,即pos[a[i]]=i;

然后,可以发现前后两部分并没有关系

t=1n(dtdμ(td)ϕ(d))(i=1ntj=1ntϕ(it)ϕ(jt)dis(pos[it],pos[jt]))\sum_{t=1}^n\big(\sum_{d|t}\frac{d*\mu(\frac{t}{d})}{\phi(d)}\big)\big(\sum_{i=1}^{\frac{n}{t}}\sum_{j=1}^{\frac{n}{t}}\phi(it)\phi(jt)dis(pos[it],pos[jt])\big)

可以令g(t)=dtdμ(td)ϕ(d)g(t)=\sum_{d|t}\frac{d*\mu(\frac{t}{d})}{\phi(d)},直接nlnnn\ln n预处理即可。

f(t)=i=1ntj=1ntϕ(it)ϕ(jt)dis(pos[it],pos[jt])f(t)=\sum_{i=1}^{\frac{n}{t}}\sum_{j=1}^{\frac{n}{t}}\phi(it)\phi(jt)dis(pos[it],pos[jt])

然后不太好弄,我们把dis拆开

f(t)=i=1ntj=1ntϕ(it)ϕ(jt)(dep[pos[it]]+dep[pos[jt]]2dep[lca])f(t)=\sum_{i=1}^{\frac{n}{t}}\sum_{j=1}^{\frac{n}{t}}\phi(it)\phi(jt)(dep[pos[it]]+dep[pos[jt]]-2*dep[lca])

拆开

f(t)=i=1ntj=1ntϕ(it)ϕ(jt)dep[pos[it]]+ϕ(it)ϕ(jt)dep[pos[jt]]2ϕ(it)ϕ(jt)dep[lca]f(t)=\sum_{i=1}^{\frac{n}{t}}\sum_{j=1}^{\frac{n}{t}}\phi(it)\phi(jt)dep[pos[it]]+\phi(it)\phi(jt)dep[pos[jt]]-2*\phi(it)\phi(jt)dep[lca]

可以发现前两项是相同的,可以O(nt)O(\frac{n}{t})处理。

具体来说是整成这样:(i=1ntϕ(it)dep[pos[it]])(i=1ntϕ(it))\sum_{i=1}^{\frac{n}{t}}\phi(it)dep[pos[it]])(\sum_{i=1}^{\frac{n}{t}}\phi(it))

然后后面那部分f(t)=2i=1ntj=1ntϕ(it)ϕ(jt)dep[lca(pos[it],pos[jt])]f(t)=2*\sum_{i=1}^{\frac{n}{t}}\sum_{j=1}^{\frac{n}{t}}\phi(it)\phi(jt)dep[lca(pos[it],pos[jt])]

然后我们把所有pos[it] (pos[jt]一样)拿出来建虚树,一共不会超过nlnnn\ln n个点

然后像这道题一样,在lca处一个一个子树合并(别忘了考虑他自己和自己及子树内点的lca也是他自己),就可以做了!(别忘了虚树中只有关键点的phi计入)

反正大概就是x1y1+x2y1+x3y1+x1y2+x2y2+x3y2+x3y1+x1y3+x2y3+x3y3=(x1+x2+x3)(y1+y2+y3)x1*y1+x2*y1+x3*y1+x1*y2+x2*y2+x3*y2+x3*y1+x1*y3+x2*y3+x3*y3=(x1+x2+x3)(y1+y2+y3)这种,于是维护子树内关键点的phi值和,然后再乘上自己的dep就可以了。

Finished! by zhqwq