杜教筛

适用条件

  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. Docker 构建私有镜像仓库

    在使用Docker一段时间后,往往会发现手头积累了大量的自定义镜像文件,这些文件通过公有仓库进行管理并不方便,另外有时候只是希望在内部用户之间进行分享,不希望暴露出去.这种情况下,就有必要搭建一个本地 ...

  2. Fluent API

    fluent api用于onmodelcreating里,可以实现比attribute更强更灵活的配置 public partial class StoreDBContext : DbContext ...

  3. 简单搭建http服务器-HttpListener使用

    使用HTTPListener可以简单搭建一个Http服务器,对于本地使用很是方面,想起之前使用了WebSocket来与本地网页通讯的例子,也是可以改为使用HTTPListener来做的.看下HTTPL ...

  4. JavaScript的数组方法(array)

    数组方法: 1. concat()  合并数组 2. join()  将数组的元素拼接成字符串,并指定分隔符 3. push()  往数组末尾添加一个元素,并返回新的数组的长度 4. reverse( ...

  5. 网站更换服务器出现加载不了js css文件的问题

    原因是 里面加找不到.woff类型,后面把上面注释掉就可以了

  6. Mac下的Web性能压力测试工具:ab(ApacheBench)

    Web开发,少不了的就是压力测试,它是评估一个产品是否合格上线的基本标准. ab是一种用于测试Apache超文本传输协议(HTTP)服务器的工具.apache自带ab工具,可以测试Apache.IIS ...

  7. luogu P2154 [SDOI2009]虔诚的墓主人

    luogu 下面记一个点上下左右点数分别为\(u_i,d_i,l_i,r_i\) 枚举每个中间点太慢了,考虑枚举两个点之间横的一条线段,这里面的点左边点数目都相同,右边点数目都相同,然后只要查一下区间 ...

  8. centos7.3安装docker

    一.写随笔的原因:最近在阿里云上买了个centos7.3服务器,想将一些demo运行在上面,所以需要做一些环境的安装,通过此篇文章MAKR一下.下面来记录下安装步骤(参考网上的一些教程,有坑的话会实时 ...

  9. centos 7 Network 脚本

    #!/bin/sh #主动启动网卡 interface=$() ifup $interface #获取当前网络信息 default_route=$(ip route show) default_int ...

  10. HDU 5875 Function 2016 ACM/ICPC Asia Regional Dalian Online

    N个数(N<=100000),M个询问,每次询问L,R,求F(L,R). F(L,R)=F(L,R-1)%A[R] , L<R 这道题数据比较鶸 可以直接用递减爆 正确做法应该是倍增 用倍 ...