[总结] min-25筛
再不写总结我又会忘掉啊啊啊啊啊啊啊啊啊
这个\(min-25\)筛主要用来求一个积性函数的前缀和,就像这样\[\sum_{i=1}^n f(i)\]
不过这个积性函数要满足两个条件:质数\(p\)的函数值\(f(p)\)有个多项式表达,\(f(p^c)\)能够快速计算
\(min-25\)筛求前缀和的过程可以看成把所有数贡献分成质数贡献和合数贡献计算(可能有\(1\)的贡献).先考虑质数的贡献
...
好像除了暴力没有更好的办法啊
不过可以发现一个数\(>\sqrt{n}\)的质因子最多只有一个,也就是任意合数至少会有一个\(\le\sqrt{n}\)的质因子,所以可以枚举\(\le\sqrt{n}\)的质因数筛掉合数的贡献.
后面记\(P\)为质数集合,\(P_j\)为从小到大第\(j\)个质数.这里设\(g(n,j)\)表示\(\le n\)的所有质数以及最小质因数\(>P_j\)的数的贡献.考虑从\(g(n,j-1)\)转移到\(g(n,j)\),如果\(P_j>\sqrt{n}\),那么所有数都是质数了,所以可以直接赋值过来;否则还要减去最小质因子\(=P_j\)的数贡献.先把所有这样的数\(/ P_j\),除完后\(i\)对应到\(\frac{i}{P_j}\),同时最小质因子也要满足\(\ge P_j\),所以这一部分就是\(f(P_j)g(\lfloor\frac{n}{P_j}\rfloor,j-1)\).不过这样也减去了一些\(<P_j\)的质数的贡献,要加回来,所以综上所述,转移可以这样写\[g(n,j)=\begin{cases}g(n,j-1)&P_j\ge \sqrt{n}\\ g(n,j-1)-f(P_j)(g(\lfloor\frac{n}{P_j}\rfloor,j-1)-g(P_j-1,j-1))&P_j< \sqrt{n}\end{cases}\]
那个\(g(P_j-1,j-1)\)就是\(\sum_{k=1}^{j-1}f(P_k)\)
可以发现\(g(n,|P|)\)就是所有\(\le n\)质数的贡献(记最大的\(\le \sqrt{n}\)的质数为\(P_m\),其实只要做到\(g(n,m)\)就行了)
然后考虑要求的,类似于上面过程,记\(S(n,j)\)为\(\le n\)所有最小质因子\(\ge P_j\)的数的贡献.首先考虑质数的贡献,也就是\[\sum_{k=j}^{|P|}f(P_k)=g(n,m)-g(P_j-1,j-1)\]
然后是合数贡献.先枚举那些合数的最小质因子\(P_k\),然后枚举它的出现次数\(c\),那么剩下数的贡献是\(S(\lfloor\frac{n}{{P_k}^c}\rfloor,k+1)\),因为是积性函数,所以这一部分的乘上\(f({P_k}^c)\)就是对应的数的贡献.但是这样子没有算到\({P_k}^c\)的贡献,所以额外加上,转移可以这样写\[S(n,j)=g(n,m)-g(P_j-1,j-1)+\sum_{k\ge j}\sum_{c}f({P_k}^c)(S(\lfloor\frac{n}{{P_k}^c}\rfloor,k+1)+[c>1])\]
然后递归处理即可
还有就是做的时候,只有形如\(\lfloor\frac{n}{i}\rfloor\)这样的数才是有用的,所以可以给每个这样的数编号,就能用数组代替map
例题先咕了
[总结] min-25筛的更多相关文章
- $Min\_25$筛学习笔记
\(Min\_25\)筛学习笔记 这种神仙东西不写点东西一下就忘了QAQ 资料和代码出处 资料2 资料3 打死我也不承认参考了yyb的 \(Min\_25\)筛可以干嘛?下文中未特殊说明\(P\)均指 ...
- 「笔记」$Min\_25$筛
总之我也不知道这个奇怪的名字是怎么来的. \(Min\_25\)筛用来计算一类积性函数前缀和. 如果一个积性函数\(F(x)\)在质数单点是一个可以快速计算的关于此质数的多项式. 那么可以用\(Min ...
- Min_25筛学习笔记
感觉好好用啊 Luogu上的杜教筛模版题一发 Min_25抢到了 rank1 $ Updated \ on 11.29 $被 STO txc ORZ踩爆啦 前言 $ Min$_$25$筛可以求积性函数 ...
- [复习]莫比乌斯反演,杜教筛,min_25筛
[复习]莫比乌斯反演,杜教筛,min_25筛 莫比乌斯反演 做题的时候的常用形式: \[\begin{aligned}g(n)&=\sum_{n|d}f(d)\\f(n)&=\sum_ ...
- 【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\ ...
- uoj#188. 【UR #13】Sanrd(Min_25筛)
题面 传送门 题解 这是一道语文题 不难看出,题目所求即为\(l\)到\(r\)中每个数的次大质因子 我们考虑\(Min\_25\)筛的过程,设 \[S(n,j)=\sum_{i=1}^nsec_p( ...
- [学习笔记]min_25筛
神佬yyb 神佬zsy 想不到花了两个小时的时间看 \(min\_25\) 筛就看懂了 实际去追了一下魔禁3 我们先举个例子.如求 \[\sum_{i=1}^{n}f(i)\] 其中 \(f(i)\) ...
- 【UOJ#188】Sanrd(min_25筛)
[UOJ#188]Sanrd(min_25筛) 题面 UOJ 题解 今天菊开讲的题目.(千古神犇陈菊开,扑通扑通跪下来) 题目要求的就是所有数的次大质因子的和. 这个部分和\(min\_25\)筛中枚 ...
- uoj#448. 【集训队作业2018】人类的本质(Min_25筛+拉格朗日插值)
题面 传送门 题解 肝了整整一天--膜拜yww和cx巨巨--(虽然它们的题解里我就没看懂几个字) 请备好草稿纸和笔,这种题目就是需要耐心推倒 题目所求是这么一个东西 \[ \begin{aligned ...
随机推荐
- __setup宏简介
内核组件用__setup宏来注册关键字及相关联的处理函数,__setup宏在include/linux/init.h中定义,其原型如下: __setup(string, fun ...
- 使用二次封装的openStack发行版本网卡至少有2个
- 4种方法实现C#无标题栏窗体的移动
首先C#无标题栏窗体的实现代码 在load时实现 无工具栏+无窗口标题 private void Form1_Load(object sender, EventArgs e) { this.Contr ...
- 项目清理和删除svn信息(转)
svn信息是根据文件夹里面的 .svn 文件夹保存相关配置的,删除此文件夹即可去掉svn信息: linux下: find . -type d -name ".svn"|xargs ...
- .NET 下的 POP3 编程代码共享
前一段时间在论坛上看见有人问如何使用.net进行POP3编程,其实POP3的使用很简单,所以.net没有向SMTP那样给出相应的类来控制. 废话少说,程序员最需要的使代码. 1.打开VS.NET 20 ...
- Spring Data JPA stackoverflow
1.禁止使用lombok 的@Data 注释 使用@Data注释后,默认会重写父类的toString()方法,hashcode()等方法,在往map里存的时候,会根据equals和hashcode方法 ...
- .net 扩展方法,lamada表达式 委托
扩展方法 (1)扩展方法是一种特殊的静态方法,它定义在一个静态类中,但可以在其他类的对象上向调用实例方法那样进行调用.因此,通过扩展方法,我们就可以在不修改一个类型的前提下对一个类型进行功能上的扩充, ...
- html页面渲染过程
1.解析html文件,创建DOM树 自上而下解析,遇到任何样式(link.style)和脚本(script)都会阻塞 1)css加载不会阻塞html文件的解析,但会阻塞dom的渲染 2)css加载会阻 ...
- hdu2795(线段树单点更新&区间最值)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2795 题意:有一个 h * w 的板子,要在上面贴 n 条 1 * x 的广告,在贴第 i 条广告时要 ...
- python——类与对象
__init__ 方法: 1.Init 初始化方法的返回值必须是None. 3.类没有定义阶段,函数有定义阶段(不调用不执行). 实例化时触发__init__方法执行,为对象添加属性.[t1=stu ...