版权声明:转载请声明出处,谢谢配合。 https://blog.csdn.net/zxyoi_dreamer/article/details/83118510
传送门(内网)
解析:
的第一道点分治。。。
想起来我
的第一道数位
也是在考场上
出来的呢(当时还套了一个状压)
思路:
看到题目发现很好写暴力, 的 和 的状压,就把 到手了,场上滚去想 正解就只写了两个暴力滚粗了。暴力还拿了全场最高分。。。暴力代码
然而我下来才发现,要是自己当时去想正解。。。可能就想出来了的。。。
这样一个问题,正解显然是点分治,然而怎么统计答案?
容斥原理!
显然,所有点对有 个,那么我们没有简单的办法直接统计互质的对数,我们就统计不互质的对数!
现在考虑求出了以 为根的子树中的所有点到 的路径上的点权 ,怎么统计?
注意一个问题,这里可以简化一下。
我们将所有点权唯一分解
,可以非常轻易的发现,在这里,质因子的次数对答案的影响只在于为不为
。那么我们将所有的点权唯一分解,只保留质因子的一次。这样可以简化问题。
然后就是容斥,我们将简化后的点权的 再一次唯一分解,将它的所有因子全部计算出来。
所有这个因数的倍数的出现次数都需要被计算。考虑如果这个因数有奇数个质因子,那么它的贡献需要被剪去,否则需要加上。
是不是很像莫比乌斯函数(大雾)
扫描二维码关注公众号,回复:
3614222 查看本文章
剩下的就是点分治一样的容斥统计了。