CF594D REQ

根据 φ\varphi 的规律,设 n=ipiain=\prod\limits_{i}{p_i^{a_i}},则有 φ(n)=n×ipi1pi\varphi(n)=n\times\prod\limits_{i}{\frac{p_i-1}{p_i}}

故区间 φ\varphi 可先前缀积算前面那个,后面那么直接看区间出现哪些质数即可。

考虑离线,我们将询问按照右端点排序,维护一个右指针,将 aia_i 逐个加入,用树状数组维护每个位置对答案的贡献。

预处理所有质数,logV\log V 枚举找质因子,对于重复出现的质因子,维护 lstilst_i 表示质因子 ii 上次出现的位置,将上次的贡献消去即可。

时间复杂度 O((n+q)lognlogV)\mathcal O((n+q)\log n\log V)(其中 VV 表示值域 [1,n][1,n])。

posted @ 2022-12-01 08:58  蒟蒻orz  阅读(5)  评论(0)    收藏  举报  来源