zoukankan      html  css  js  c++  java
  • HDU 6175 算术

    题目大意

    求 $sum_{i = 1}^{n} sum_{j = 1}^{m} mu(lcm(i, j))$ 。
    $ 1 le n, m le 10^6 $ 。

    分析

    不妨设 $ n le m$ 。

    $ mu(lcm(i, j)) = mu(i) mu(j) mu(gcd(i, j)) $

    令 $S = sum_{i = 1}^{n} sum_{j = 1}^{m} mu(lcm(i, j))$

    egin{aligned}
    S &= sum_{i = 1}^{n} sum_{j = 1}^{m} mu(i) mu(j) mu(gcd(i, j)) \
    &= sum_{d = 1}^{n} mu(d) sum_{i = 1}^{n} sum_{j = 1}^{m} mu(i) mu(j) [gcd(i, j) = d] \
    &= sum_{d = 1}^{n} mu(d) sum_{i = 1}^{n/d} sum_{j = 1}^{m/d} mu(id) mu(jd) color{red}{ [gcd(i, j) = 1] } \
    &= sum_{d = 1}^{n} mu(d) sum_{i = 1}^{n/d} sum_{j = 1}^{m/d} mu(id) mu(jd) color{red}{ sum_{k mid gcd(i, j)} mu(k) } \
    &= sum_{d = 1}^{n} mu(d) sum_{i = 1}^{n/d} sum_{j = 1}^{m/d} mu(id) mu(jd) color{red}{ sum_{k mid i, k mid{j}} mu(k) } \
    &= sum_{d = 1}^{n} mu(d) sum_{k = 1}^{n / d} mu(k) sum_{i = 1}^{n/d} sum_{j = 1}^{m/d} mu(id) mu(jd) sum_{k mid i, k mid{j}} 1 \
    &= sum_{d = 1}^{n} mu(d) sum_{k = 1}^{n / d} mu(k) sum_{i = 1}^{n/(dk)} sum_{j = 1}^{m/(dk)} mu(idk) mu(jdk)
    end{aligned}

    上述红色部分即用莫比乌斯函数的性质 $sum_{dmid n} mu(d) = [n = 1]$ 进行化简的套路。

    固定 $dk$(即令 $t = dk$),有

    egin{aligned}
    S = sum_{t = 1}^{n} color{blue}{ sum_{d mid t} mu(d) mu(t / d) } sum_{i = 1}^{n/t} mu(it) sum_{j = 1}^{m/t} mu(jt)
    end{aligned}

    $sum_{d mid t} mu(d) mu(t / d)$ 即 $(mu * mu) (t)$ 。

    预处理

    对于 $t$ 从 $1$ 到 $n$,求

    • $mu(t)$,用线性筛,复杂度 $O(n)$ 。
    • $sum_{d mid t} mu(d) mu(t / d)$,复杂度 $O(n log n)$ 。
    • $sum_{i = 1}^{n/t} mu(it)$ 和 $ sum_{j = 1}^{m/t} mu(jt) $,复杂度 $O(m log m)$ 。
  • 相关阅读:
    sublime生成html快捷标签布局
    vue.js选项卡动态组件
    textarea内容限制字数
    60s验证等待
    vue.js显示隐藏
    CSS强制性换行
    Ultra Pull To Refresh下拉刷新
    Open经验库网址
    Fresco实例
    解决LinearLayout中控件不能居右对齐
  • 原文地址:https://www.cnblogs.com/Patt/p/11490010.html
Copyright © 2011-2022 走看看