zoukankan      html  css  js  c++  java
  • min_25筛学习笔记

    神仙东西,考到了学习一下。

    条件:$f(x)$为积性函数,$f(p)$低阶多项式,$f(p^k)$可快速求

    为啥f(p)要求是个低阶多项式?因为这个要求是完全积性的。

    然后可以去预处理一些东西

    g[i][j]表示[1,i]中数为质数或low>p[j]的函数和(为f(p)低阶多项式形式)

    考虑转移

    $$g_{i,j}=g_{i,j-1}-f(p_j)*(g_{i/p_j,j-1}-g_{p_{j-1},j-1})$$

    注意的是这个g求的是所有质数的答案,并且容易发现当$j>sqrt{i}$时答案不变

    这样复杂度就有保证了。

    然后剩下的是算合数的贡献(先把1去掉最后加上)

    设S[i][j]表示[1,i]中low>=p[j]的函数和

    然后类似上面的,不过因为是积性而非完全积性,需要枚举最低位是谁。

    $$S(n,j)=g(n)-sum_{i=1}^{j-1}f(p_i)+sum_{k>=j}sum_{c}F(p_k^c)S(n/p_k^c,k+1)+F(P_k^{c+1})$$

    ans=S(n,1)

     

  • 相关阅读:
    面试题_day0212
    面试题_day0211
    猫眼的数字解密
    缺口验证码
    mysql替换字段里面的内容
    mysql重复id删除
    追踪你的女朋友。
    淘宝登录验证
    jadx-gui-1.0.0.jar怎么运行?
    Python实现一个进度条
  • 原文地址:https://www.cnblogs.com/hzoi-kx/p/12374686.html
Copyright © 2011-2022 走看看