杜教筛

适用条件

  1. 你要能构造出\(g(x),h(x)\),使得\(h=f*g\)。

  2. \(G(x),H(x)\)的值可以快速计算。

过程

我们要求的是\(F(n)=\sum_{i=1}^{n}f(i)\),现在有\(h=f*g\),\(G(x),H(x)\)分别为\(g(x),h(x)\)的前缀和。

\[
\begin{aligned}
H(n)=&\sum_{i=1}^{n}h(i)\\
=&\sum_{i=1}^{n}\sum_{d|i}f(\frac{i}{d})g(d)\\
=&\sum_{d=1}^{n}g(d)\sum_{i=1}^{\lfloor \frac{n}{d} \rfloor}f(i)\\
=&\sum_{d=1}^{n}g(d)F(\lfloor \frac{n}{d} \rfloor)\\
g(1)F(n)=H(n)-&\sum_{d=2}^{n}g(d)F(\lfloor \frac{n}{d} \rfloor)
\end{aligned}
\]

通过线性筛预处理出前\(n^{\frac{2}{3}}\)的前缀和,加上记忆化,可以做到\(O(n^{\frac{2}{3}})\)的时间复杂度。

min_25筛

适用条件

  1. \(f(P)\)的值是一个关于\(P\)的多项式。

  2. \(f(P^Q)\)的值可以快速计算。

  3. 当然,\(f(x)\)必须是一个积性函数。

原理

先咕了,咕咕咕。

第一次处理

假设\(f'(x)=x^k\),令\(g[P_i][x]\)表示所有\(f'(y)\)的和,其中\(1 \leq y \leq x\),\(y\)是质数或者\(y\)的最小质因子大于\(P_i\),有这样的递推式:

\[g[P_i][x]=g[P_{i-1}][x]-f'(P_i)(g[P_{i-1}][\lfloor\frac{x}{P_i}\rfloor]-\sum_{j=1}^{i-1}f'(P_j)),\ x \geq P_i^2\]

\[g[P_i][x]=g[P_{i-1}][x],\ x < P_i^2\]

\(g[P_i][x]\)的第一维可以使用滚动数组优化掉,时间复杂度为\(O(\frac{n^{\frac{3}{4}}}{\log n})\)。

第二次处理

为了方便,这里使用\(g[x]\)表示\(g[P_{cnt}][x]\)(\(cnt\)表示质数个数)。

令\(S(x,P_i)\)表示所有\(f(y)\)的和,其中\(1 \leq y \leq x\),\(y\)的最小质因子大于等于\(P_i\),有:

\[S(x,P_i)=g[x]-\sum_{j=1}^{i-1}f(P_j)+\sum_{j=i}^{P_j^2 \leq x}\sum_{k=1}^{P_j^{k+1} \leq x}f(P_j^k)S(\lfloor\frac{x}{p_j^k}\rfloor,P_{j+1})+f(P_j^{k+1})\]

这里无需记忆化,直接递归计算即可,时间复杂度为\(O(\frac{n^{\frac{3}{4}}}{\log n})\)。

杜教筛&min_25筛复习的更多相关文章

  1. [复习]莫比乌斯反演,杜教筛,min_25筛

    [复习]莫比乌斯反演,杜教筛,min_25筛 莫比乌斯反演 做题的时候的常用形式: \[\begin{aligned}g(n)&=\sum_{n|d}f(d)\\f(n)&=\sum_ ...

  2. [BZOJ4916]神犇和蒟蒻 杜教筛/Min_25筛

    题目大意: 给定\(n\le 10^9\),求: 1.\(\sum_{i=1}^n\mu(i^2)\) 2.\(\sum_{i=1}^n\varphi(i^2)\) 解释 1.\(\sum_{i=1} ...

  3. 洲阁筛 & min_25筛学习笔记

    洲阁筛 给定一个积性函数$F(n)$,求$\sum_{i = 1}^{n}F(n)$.并且$F(n)$满足在素数和素数次幂的时候易于计算. 显然有: $\sum_{i = 1}^{n} F(n) = ...

  4. 【51NOD1847】奇怪的数学题 min_25筛

    题目描述 记\(sgcd(i,j)\)为\(i,j\)的次大公约数. 给你\(n\),求 \[ \sum_{i=1}^n\sum_{j=1}^n{sgcd(i,j)}^k \] 对\(2^{32}\) ...

  5. 51nod1847 奇怪的数学题 (Min_25筛+第二类斯特林数)

    link \(\sum_{i=1}^n\sum_{j=1}^n\mathrm{sgcd}(i,j)^k=\sum_{p=1}^ns(p)^k\sum_{i=1}^n\sum_{j=1}^n[\gcd( ...

  6. min_25筛入门

    目录 1.什么是min_25筛 2.前置知识 2.1.数论函数 2.2.埃拉托色尼筛 2.3.欧拉筛 3.min_25筛 3.1.计算质数贡献 3.2.计算总贡献 3.3.实现 4.例题 4.1.[L ...

  7. 【51NOD 1847】奇怪的数学题(莫比乌斯反演,杜教筛,min_25筛,第二类斯特林数)

    [51NOD 1847]奇怪的数学题(莫比乌斯反演,杜教筛,min_25筛,第二类斯特林数) 题面 51NOD \[\sum_{i=1}^n\sum_{j=1}^nsgcd(i,j)^k\] 其中\( ...

  8. 【LOJ#572】Misaka Network 与求和(莫比乌斯反演,杜教筛,min_25筛)

    [LOJ#572]Misaka Network 与求和(莫比乌斯反演,杜教筛,min_25筛) 题面 LOJ \[ans=\sum_{i=1}^n\sum_{j=1}^n f(gcd(i,j))^k\ ...

  9. LOJ572. 「LibreOJ Round #11」Misaka Network 与求和 [莫比乌斯反演,杜教筛,min_25筛]

    传送门 思路 (以下令\(F(n)=f(n)^k\)) 首先肯定要莫比乌斯反演,那么可以推出: \[ ans=\sum_{T=1}^n \lfloor\frac n T\rfloor^2\sum_{d ...

随机推荐

  1. Kinect开发-Hello Kinect

    置好开发环境后,首先测试下是否真的完成,也就是能够正常进行开发.此时,当然就得祭出Hello World大法! 1.首先创建一个WPF Application工程,之后添加对Microsoft.Kin ...

  2. C数据结构排序算法——希尔排序法用法总结(转http://www.cnblogs.com/skywang12345/p/3597597.html)

    希尔排序介绍 希尔排序(Shell Sort)是插入排序的一种,它是针对直接插入排序算法的改进.该方法又称缩小增量排序,因DL.Shell于1959年提出而得名. 希尔排序实质上是一种分组插入方法.它 ...

  3. AWS In Action

    Core Services of AWS Elastic Cloud Compute(EC2) Simple Storage Service(S3) Relational Database Servi ...

  4. 富文本编辑器--引入demo和简单使用

    wangEditor —— 轻量级 web 富文本编辑器,配置方便,使用简单.支持 IE10+ 浏览器. 官网:www.wangEditor.com 文档:www.kancloud.cn/wangfu ...

  5. 【项目构建工具】 Gradle笔记1

    一.Gradle简介 Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具.它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XM ...

  6. Nginx(web服务器)与Tomcat(应用服务器)搭建集群

    Nginx作为互联网最常用的web服务器,高性能的HTTP和反向代理使它经常作为Tomcat集群的方案.Nginx官方只支持使用HTTP协议的集成,但是如果你想使用AJP协议集成,可以使用阿里开源的n ...

  7. idea自动抽取变量快捷键设置

    file---setting---keymap---搜索variable 如下图:默认是ctrl+alt+v,这里修改成自己比较方便的快捷键即可,我这里设置的是alt+e

  8. MSSQL数据库备份还原常用SQL语句及注意

    .备份数据库 backup database db_name to disk='d:\db_name.bak' with format --通过使用with format可以做到覆盖任何现有的备份和创 ...

  9. STL源码阅读-traits与迭代器

    迭代器模式 提供一种方法,使之能够依序访问容器的各个元素,而又无需暴露容器的内部表述方式 STL设计的中心思想在于将数据容器和算法分离开,容器和算法分开设计,迭代器则是两者之间的胶着剂,一般迭代器的设 ...

  10. 第二章 Vue快速入门--20 品牌案例-完成品牌列表的添加功能+ 21 品牌案例-根据Id完成品牌的删除

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...