Description
给定正整数\(a,b,c\),求: \[ \sum_{i = 1}^a\sum_{j = 1}^b\sum_{k = 1}^c [i\perp j][i\perp k][j\perp k] \] \(a,b,c\leq 5\times 10^5\)。
Solution
下面钦点\(a\leq b\leq c\)。 \[ \begin{aligned} \quad&\sum_{i = 1}^a\sum_{j = 1}^b\sum_{k = 1}^c [i\perp j][j\perp k][i\perp k]\\ =&\sum_{i = 1}^a\sum_{j = 1,j\perp i}^b\sum_{k = 1,k\perp i}^c [j\perp k]\\ =&\sum_{i = 1}^a\sum_{j = 1,j\perp i}^b\sum_{k = 1,k\perp i}^c \sum_{d | j, d | k}\mu(d)\\ =&\sum_{i = 1}^a\sum_{d = 1, d\perp i}^b \mu(d)S_i(\lfloor\frac{b}{d}\rfloor)S_i(\lfloor\frac{c}{d}\rfloor) \end{aligned} \] 其中\(S_a(n)\)表示\([1, n]\)中和\(a\)互质的正整数数量。
后面那一块很显然可以整除分块罢……然后接下来我们需要考虑处理\([1, n]\)中和\(a\)互质的数的\(\mu\)和\(1\)的和,这个东西很显然可以用洲阁筛/Min_25筛的思想。考虑将\(i\)质因数分解为,其质因子有\(p_1, p_2,\ldots, p_k\)。定义状态\(f_i(n)\)表示\([1, n]\)中和前\(i\)个质因子互质的\(\mu\)的和,类似的用\(g_i(n)\)表示\(1\)的和。那么转移很显然是: \[ f_i(n) = f_{i - 1}(n) + f_i(\lfloor\frac{n}{p_i}\rfloor)\\ g_i(n) = g_{i - 1}(n) - g_{i - 1}(\lfloor\frac{n}{p_i}\rfloor) \] 考虑到状态全部是\(\lfloor\frac{n}{x}\rfloor\)的形式,所以我们要是对每个\(i\)都这么做一遍的话,每个\(i\)的总状态数(也是时间复杂度)就是\(O(\omega(i)\sqrt{i})\)。因此总的复杂度大约就是\(O(n\sqrt{n}\log n)\),并且还很不满,看起来很稳是不是啊……
然后我直接写了一个东西交上去,然后T到60……卡了卡常之后T到了80……
然后注意到如果两个\(i\)的质因子构成是完全一致的话,那么他们对答案的贡献也就一样……所以我们再额外对这个东西记忆化一下,然后就能卡过去了。这之后有没有一个可以推出来的更紧的上界,我就不知道了……有没有先辈会算这个啊……有的话麻烦在评论区书一下qwq
Code
1 |
|