[学习笔记]min_25筛
想不到花了两个小时的时间看 \(min\_25\) 筛就看懂了 实际去追了一下魔禁3
我们先举个例子。如求
\[\sum_{i=1}^{n}f(i)\]
其中 \(f(i)\) 是积性函数,而且要满足 \(i\in prime\) 时 \(f(i)\) 是一个简单多项式,\(f(i^k)\) 可以快速计算出来。
怎么用呢
我们先丢开前缀和,计算
\[\sum_{i=1}^{n}[i\in prime]f(i)\]
那么现在我们要用到埃氏筛的思想。每次我们要减去新筛去的 \(f(i)\),然后减完了以后就是答案
\(g(n,j)\) 表示在前 \(j\) 个质数用埃氏筛筛完后的答案。
举个例子,\(g(10,2)=f(2)+f(3)+f(5)+f(7)+f(9)\)。令 \(P_j\) 为质数集合中第 \(j\) 小的质数,那么
\[g(n,j)=\sum_{i=1}^{n}[i\not |\ P_1,[i\not |\ P_2,...,[i\not |\ P_j]f(i)\]
现在,我们可以用 \(g(n,j-1)\) 来推出 \(g(n,j)\)
若 \(P_j^2>n\),那么 \(P_j\) 便对答案没有贡献了,\(g(n,j)=g(n,j-1)\)
若 \(P_j^2\leq n\),那么我们在 \(g(n,j-1)\) 的基础上要减掉一些东西。
那减掉什么呢?
首先,能被 \(P_j\) 筛掉的数一定被 \(P_j\) 整除,并且在除以 \(P_j\) 之后,最小质因子 \(\geq P_j\)
那么我们联想到了 \(g(\frac{n}{P_j},j-1)\)。但是发现 \(P_j\times P_1,P_j\times P_2,...,P_j\times P_{j-1}\) 已经被筛过了,所以要减去的应该是 \(f(P_j)\times (g(\frac{n}{P_j},j-1)-\sum_{i=1}^{j-1}f(P_i))\)
所以可以得到下面的式子:
\(g(n,j)= \begin{cases} g(n,j-1)&P_j^2>n\\ g(n,j-1)-f(P_j)\times [g(\frac{n}{P_j},j-1)-\sum_{i=1}^{j-1}f(P_i)]&P_j^2\leq n \end{cases}\)
这就是 \(min\_25\) 筛的精髓。其实本质上 \(min\_25\) 是个容斥算法。
值得一提的是,它的时间复杂度为 \(O(\frac{n^{\frac 34}}{\log n})\),可以当做 \(O(n^{\frac 23})\),在 \(n\leq 10^{11}\) 的数据下大概要花 \(500ms\) 左右。
[学习笔记]min_25筛的更多相关文章
- [学习笔记]Min-25筛
%%yyb %%zsy 一. 基本操作:筛1~N中的素数个数.n=1e9 设F(M,j)表示,2~M的所有数中,满足以下条件之一的数的个数:①x是质数②x最小质因子大于(注意是大于没有等号)$P_j$ ...
- Min_25筛 学习笔记
这儿只是一个简单说明/概括/总结. 原理见这: https://www.cnblogs.com/cjyyb/p/9185093.html https://www.cnblogs.com/zhoushu ...
- Min_25 筛 学习笔记
原文链接https://www.cnblogs.com/zhouzhendong/p/Min-25.html 前置技能 埃氏筛法 整除分块(这里有提到) 本文概要 1. 问题模型 2. Min_25 ...
- min_25筛学习笔记【待填坑】
看见ntf和pb两位大佬都来学了,然后就不自觉的来学了. 我们考虑这样一个问题. $$ans=\sum_{i=1}^nf(i)$$其中$1\leq n\leq 10^{10}$ 其中$f(i)$是一个 ...
- $Min\_25$筛学习笔记
\(Min\_25\)筛学习笔记 这种神仙东西不写点东西一下就忘了QAQ 资料和代码出处 资料2 资料3 打死我也不承认参考了yyb的 \(Min\_25\)筛可以干嘛?下文中未特殊说明\(P\)均指 ...
- 「学习笔记」Min25筛
「学习笔记」Min25筛 前言 周指导今天模拟赛五分钟秒第一题,十分钟说第二题是 \(\text{Min25}\) 筛板子题,要不是第三题出题人数据范围给错了,周指导十五分钟就 \(\text{AK ...
- Powerful Number 筛学习笔记
Powerful Number 筛学习笔记 用途 \(Powerful\ number\) 筛可以用来求出一类积性函数的前缀和,最快可以达到根号复杂度. 实现 \(Powerful\ number\) ...
- Min_25筛 学习小记
前言 为什么叫学习小记呢?因为暂时除了模板题就没有做其他的东西了.(雾 这个东西折磨了我一整天,看得我身不如死,只好结合代码理解题解,差点死在机房.(话说半天综合半天竞赛真是害人不浅) 为了以后忘了再 ...
- min-25筛学习笔记
Min_25筛简介 \(\text{min_25}\)筛是一种处理一类积性函数前缀和的算法. 其中这类函数\(f(x)\)要满足\(\sum_{i=1}^{n}[i\in prime]\cdot f( ...
随机推荐
- SQL判断如果一列值为null则取另一列值代替 isnull()
[chClientCode] ,[nvcClientName] ,[chRegionCode] ,isnull(chUltimateHeadClientCode,[chClientCode]) as ...
- [ASP.NET]static变量和viewstate的使用方法
在.Net平台下进行CS软件开发时,我们经常遇到以后还要用到某些变量上次修改后的值,为了简单起见,很多人都习惯用static来定义这些变量,我也是.这样非常方便,下一次调用某个函数时该变量仍然保存的是 ...
- NOIP训练测试2(2017081502)
唔,这是今天第二场训练测试. 上一轮不够难,现在来一波更简单的.[滑稽] 注意时间! 测试时间:3小时 题目一:Cantor表 题目二:回文数 题目三:拼数 题目四:进制位 题目五:邮票面值设计 都是 ...
- 前端之css操作2
一 伪类选择器 伪类选择器就是在查找的后面加上冒号和状态 hover:悬浮到上面就会变化一种状态 link:没有接触的状态 active:点击是触发的状态 visited:点击后的状态 <!DO ...
- RAID : 独立磁盘冗余阵列(Redundant Array of Independent Disks)
RAID 分为不用的等级(RAID0 - RAID5),以满足不同的数据应用需求. RAID 是由多个独立的高性能磁盘驱动器组成的磁盘子系统,从而提供比单个磁盘更高的存储性能和数据冗余的技术. AID ...
- Spring MVC和Struts2的比较[转]
虽然说没有系统的学习过Spring MVC框架, 但是工作这么长时间, 基本上在WEB层使用的都是Spring MVC, 自己觉得Struts2也是一个不错的WEB层框架, 这两种框架至今自己还未有比 ...
- Le Chapitre V
Chaque jour j'apprennais quelque chose sur la planète, sur le départ, sur le voyage. Ca venait tout ...
- mysql 入门 jdbc
在java程序中连接mysql,先要到mysql的网站上面去下载驱动,并且安装,默认安装在c盘(我的都是默认安装,目录为C:\Program Files\MySQL\MySQL Connector J ...
- 一份不太简短的LaTeX模板
编译环境: Ubuntu16.04 texllive2016 sublime text3 + latextools 该模板使用与自己写文档,记笔记,记录代码,写作业等等. %!TEX program ...
- DeepFace和GAN
由于换脸技术的影响,现在造假视频的成本越来越低.AI换脸视频也越来越热门,甚至有一些已经达到了以假乱真的程度.虽然有明星反对表示无奈,可是.... 据报道,2018年,arXiv上发布了902篇GAN ...