「Lych_cys模拟题2018」橘子树
「lych_cys模拟题2018」橘子树
你可能需要一点点简单知识
你可能需要一点点预先知识
设值域上限为
求
筛去以内的质因数,此时剩下的质因数
剩下的中,可能出现贡献的只有是完全平方数的情况,判断即可
复杂度为
求出结点长了时间的时候被收掉的答案
预处理的答案,复杂度为
那么此时查询的权值就是,如果特判掉
否则,显然的贡献可以先分离掉考虑进答案
对于剩下的部分,不妨设,显然不包含平方因子
考虑与的合并所产生的贡献,实际上就是 (让的单个因子与匹配一下)
然后对于剩下的部分,由于,可以预处理一下答案
综合一下上面的部分,那么一个点的答案就是
因此查询一个点的复杂度就是的
综合利用上面的方法,勉强可以拿到的20分
剩下的部分,可以考虑把树树剖一下,然后每个查询可以化为在序上的若干更新区间
由于题目考虑的实际上是查询总和,因此可以对于每个点计算答案
不妨从扫描序,对于每个区间在插入,在删除
用一个set来维护的顺序,复杂度为
在插入/删除set元素的同时,维护每一个,也就是我们要查询的每个数
查询单点时,由于这样的,所以最多包含种不同的
用另一个set之类的东西维护这些不同的位置,然后暴力查询,复杂度为
总复杂度为左右
后记
由于特(智)殊(力)的(缺)原(陷)因
我考场上写了一个树剖+分块+莫比乌斯反演的做法,而且还没调出来,代码是这个,复杂度大概差不多
不提了。。。