杜教筛&min_25筛复习
杜教筛
适用条件
你要能构造出\(g(x),h(x)\),使得\(h=f*g\)。
\(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筛
适用条件
\(f(P)\)的值是一个关于\(P\)的多项式。
\(f(P^Q)\)的值可以快速计算。
当然,\(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筛复习的更多相关文章
- [复习]莫比乌斯反演,杜教筛,min_25筛
[复习]莫比乌斯反演,杜教筛,min_25筛 莫比乌斯反演 做题的时候的常用形式: \[\begin{aligned}g(n)&=\sum_{n|d}f(d)\\f(n)&=\sum_ ...
- [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} ...
- 洲阁筛 & min_25筛学习笔记
洲阁筛 给定一个积性函数$F(n)$,求$\sum_{i = 1}^{n}F(n)$.并且$F(n)$满足在素数和素数次幂的时候易于计算. 显然有: $\sum_{i = 1}^{n} F(n) = ...
- 【51NOD1847】奇怪的数学题 min_25筛
题目描述 记\(sgcd(i,j)\)为\(i,j\)的次大公约数. 给你\(n\),求 \[ \sum_{i=1}^n\sum_{j=1}^n{sgcd(i,j)}^k \] 对\(2^{32}\) ...
- 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( ...
- 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 ...
- 【51NOD 1847】奇怪的数学题(莫比乌斯反演,杜教筛,min_25筛,第二类斯特林数)
[51NOD 1847]奇怪的数学题(莫比乌斯反演,杜教筛,min_25筛,第二类斯特林数) 题面 51NOD \[\sum_{i=1}^n\sum_{j=1}^nsgcd(i,j)^k\] 其中\( ...
- 【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\ ...
- 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 ...
随机推荐
- linux centos7.3安装lnmp,nginx-1.11.12 ,php7.0.2 ,
#更新源 yum -y update #添加用户和组 adduser www groupadd www usermod -G www www #初始化目录 mkdir -p /data/app/php ...
- spark教程(四)-SparkContext 和 RDD 算子
SparkContext SparkContext 是在 spark 库中定义的一个类,作为 spark 库的入口点: 它表示连接到 spark,在进行 spark 操作之前必须先创建一个 Spark ...
- 使用Python基于VGG/CTPN/CRNN的自然场景文字方向检测/区域检测/不定长OCR识别
GitHub:https://github.com/pengcao/chinese_ocr https://github.com/xiaofengShi/CHINESE-OCR |-angle 基于V ...
- win10 64支持承载网络
在intel官网找到对应型号的网卡驱动. 下载win7版本的,更新驱动.安装完毕之后还要在设备管理里面更新2019 7 30这个版本的驱动. 英特尔® PROSet/无线软件和面向 IT 管理员的驱动 ...
- 引入DDT
一.大致介绍: DDT-Data Driven Test 是Python的第三方库,提供了创建数据驱动的测试,在线安装为:pip install ddt @data 表示元祖的列表数据 @unpack ...
- TCP socket 编程
TCP socket 编程 讲一下 socket 编程 步骤 使用 socket 模块 建立 TCP socket 客户端和服务端 客户端和服务端之间的通信 图解 编程 举个例子 tcp_server ...
- Git复习(九)之理解git工作区和暂存区
前言 Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念. 版本库 在工作区目录中有一个.git文件,这个其实不是工作区而是Git的版本库 版本库中包含两个部分,一个是暂存区index/ ...
- POJ题解Sorting It All Out-传递丢包+倍增
题目链接: http://poj.org/problem?id=1094 题目大意(直接从谷歌翻译上复制下来的): 描述 不同值的递增排序顺序是其中使用某种形式的小于运算符来将元素从最小到最大排序的顺 ...
- Yii2 常用代码集合
Yii2.0 对数据库查询的一些简单的操作 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 ...
- php 中php-fpm工作原理
1.CGI 是服务器与后台语言交互的协议,有了这个协议,开发者可以使用任何语言处理服务器转发过来的请求,动态地生成内容, 保证了传递过来的数据是标准格式的(规定了以什么样的格式传哪些数据(URL.查询 ...