[笔记] Powerful Number 筛
定义
Powerful Number(以下简称 PN)筛类似于杜教筛,可以拿来求一些积性函数的前缀和。
要求:
假设现在要求积性函数 \(f\) 的前缀和 \(F(n)=\sum_{i=1}^nf(i)\),需要存在一个函数 \(g\) 满足:
- \(g\) 是积性函数。
- \(g\) 易求前缀和。
- 对于质数 \(p\),\(g(p)=f(p)\) 。
Powerful Number
定义:每个质因子次数都 \(≥2\) 的数。
性质:
所有的 PN 都可以表示成 \(a^2b^3\)。
\(n\) 以内的 PN 至多是 \(O(\sqrt n)\) 个,可以积分证明。
枚举:线性筛出 \(\sqrt n\) 以内的质数,dfs 搜索每个质数的指数,时间复杂度 \(O(\sqrt n)\)。
原理
首先,构造出合适的 \(g\),记 \(G(n)=\sum_{i=1}^ng(i)\)。
然后考虑另一个函数 \(h\),满足 \(f=g*h\),故 \(h\) 也为积性函数,且 \(h\) 仅在 PN 处不为 \(0\)。
首先考虑质数 \(p\),\(f(p)=g(1)h(p)+g(p)h(1)=h(p)+g(p)\),故 \(h(p)=0\).
又 \(h\) 是积性函数,故对于非 PN 的数 \(n\),都有 \(h(n)=0\)。
现在,根据 \(f=g*h\) 有:
F(n)&=\sum_{i=1}^nf(i)\\
&=\sum_{i=1}^n\sum_{d\mid i}h(i)g(\frac{i}{d})\\
&=\sum_{d=1}^nh(d)\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}g(i)\\
&=\sum_{d\text{ is PN}}h(d)G(\lfloor\frac{n}{d}\rfloor)
\end{aligned}
\]
那么现在要考虑的问题就只是 PN 处 \(h\) 的取值如何计算,也就是计算 \(h(p^c)\)。
根据 \(f=g*h\),可得 \(h(p^c)=f(p^c)-\sum_{i=1}^cg(p^i)h(p^{c-i})\)。
也可以考虑直接推 \(h\) 的式子。
复杂度分析
可以分为计算 \(h(p^c)\) 和搜索两部分进行分析。
根据 \(O(\sqrt n)\) 内的素数个数为 \(O(\dfrac{\sqrt n}{\log n})\),因此时间复杂度为 \(O(\sqrt n\log n)\) 。
此处计算的上界较为宽松,可以根据题目优化。
对于搜索部分,由于 \(n\) 以内的 PN 至多有 \(O(\sqrt n)\) 个,所以至多搜索 \(O(\sqrt n)\) 次。对于每一个 PN,假设计算 \(G(\lfloor\frac{n}{d}\rfloor)\) 的时间复杂度为 \(O(1)\) ,则第二部分的复杂度为 \(O(\sqrt n)\)。
特别地,若杜教筛计算 \(G(\lfloor\frac{n}{d}\rfloor)\),则时间复杂度为杜教筛的时间复杂度,即 \(O(n^{\frac{2}{3}})\)。
对于空间复杂度,其瓶颈在于存储 \(h(p^c)\),若使用二维数组 \(a\) 记录,\(a_{i,j}\) 表示 \(h(p_{i}^j)\) 的值,则空间复杂度为 \(O(\sqrt n)\)。
void Enum(int x, LL d, int Hd){
if(x > pcnt || (__int128) d * pri[x] * pri[x] > K){
MOD(Ans += G(K / d) % mod * Hd % mod - mod);
return;
}
Enum(x + 1, d, Hd);
int cnt = 2; LL s = (LL) pri[x] * pri[x];
while((__int128) d * s <= K){
Enum(x + 1, d * s, (LL) Hd * H[x][cnt] % mod);
if((__int128) s * pri[x] > K) break;
s *= pri[x], ++cnt;
}
}
[笔记] Powerful Number 筛的更多相关文章
- Powerful Number 筛学习笔记
Powerful Number 筛学习笔记 用途 \(Powerful\ number\) 筛可以用来求出一类积性函数的前缀和,最快可以达到根号复杂度. 实现 \(Powerful\ number\) ...
- powerful number筛
心血来潮跑来实现以下这个东西 我们应该知道杜教筛的理论是 \(f * g=h\),那么问题在于如何找 \(g\). 之前的blog应该提到过可以令 \(g(p)=-f(p)\),这样一来 \(h\) ...
- Powerful Number 学习笔记
定义 对于一个正整数 \(n\) ,若完全分解之后不存在指数 \(=1\) ,则称 \(n\) 为 \(\text{Powerful Number}\) . 可以发现的是,在 \([1,n]\) 中, ...
- 利用powerful number求积性函数前缀和
好久没更博客了,先水一篇再说.其实这个做法应该算是杜教筛的一个拓展. powerful number的定义是每个质因子次数都 $\geq 2$ 的数.首先,$\leq n$ 的powerful num ...
- Note - Powerful Number
Powerful Number 对于 \(n\in\mathbb N_+\),若不存在素数 \(p\) 使得 \(p\mid n~\land~p^2\not\mid n\),则称 \(n\) 为 ...
- Powerful Number 筛法
我也不想学筛法了,可你考试时候出一个新筛法就不厚道了吧,我还开始以为这是杜教筛... $tips:$学完杜教筛立马学$Powerful \ Number$筛法,此筛法强悍如斯 $Powerful \ ...
- 「学习笔记」Min25筛
「学习笔记」Min25筛 前言 周指导今天模拟赛五分钟秒第一题,十分钟说第二题是 \(\text{Min25}\) 筛板子题,要不是第三题出题人数据范围给错了,周指导十五分钟就 \(\text{AK ...
- powerful number求积性函数前缀和
算法原理 本文参考了 zzq's blog . \(\text{powerful number}\) 的定义是每个质因子次数都 \(\ge 2\) 的数,有个结论是 \(\ge n\) 的 \(\te ...
- Java笔记:Number
序号 方法与描述 1 xxxValue()将number对象转换为xxx数据类型的值并返回. 2 compareTo()将number对象与参数比较. 3 equals()判断number对象是否与参 ...
随机推荐
- ruoyi首次使用常见问题的解决方案
1.导入项目之后,下载依赖包之后,模块的依赖项飘红(我这里无法复现,当参考图吧) 解决方法: 2.ruoyi框架代码生成之后,需要自己进行替换到指定位置.相应的官方文档位置,否则,可能会出现404,访 ...
- uWSGI+django+nginx的工作原理流程与部署
二.必要的前提 2.1 准备知识 django 一个基于python的开源web框架,请确保自己熟悉它的框架目录结构. uWSGI 一个基于自有的uwsgi协议.wsgi协议和http服务协议的web ...
- Spring常用的注入方式有哪些?
Spring通过DI(依赖注入)实现IOC(控制反转),常用的注入方式主要有三种:构造方法注入,setter注入,基于注解的注入. 参考链接:Spring常用的三种注入方式
- 如果我不输入<!DOCTYPE HTML>,HTML 5能工作吗?
No,浏览器将无法识别HTML文件,并且HTML 5标签将无法正常工作.
- 学习GlusterFS(八)
GlusterFS集群创建 一.简介 GlusterFS概述 Glusterfs是一个开源的分布式文件系统,是Scale存储的核心,能够处理千数量级的客户端.在传统的解决 方案中Glusterfs能够 ...
- Spring官宣网传大漏洞,并提供解决方案
Spring沦陷了!这样的标题这几天是不是看腻了?然而,仔细看看都是拿着之前的几个毫不相干的CVE来大吹特吹.所以,昨天发了一篇关于最近网传的Spring大漏洞的文章,聊了聊这些让人迷惑的营销文.以及 ...
- Numpy实现多项式曲线拟合
Numpy实现多项式曲线拟合 这里可以对比matlab中的拟合方式看看matlab拟合函数的三种方法,和第一种方式很像 问题定义:对于一堆数据点(x, y),能否只根据这些数据,找出一个函数,使得函数 ...
- 5_系统的可控性_Controllability
- 搞半天,全国34个省份包含湾湾\香港\澳门的高德poi兴趣点23类数据终于爬完事了
1.技术架构: python+阿里云数据库mongodb5.0+高德地图rest api 2.成本: 阿里云数据库mongodb5.0一个月话费1k多 2.遇到的问题 1)两个阿里云账号下 mongo ...
- 用纯RUST手撸一个开源流媒体服务(RTMP/HTTPFLV/HLS)XIU
作者工作目前在音视频流媒体行业,用了大概一年的业余时间学习Rust,并且实现了一个简单的音视频流媒体服务,虽然据说Rust已经连续多年被评为最受程序员喜欢的语言,但是在国内还是比较冷门,作者比较看好R ...