再不写总结我又会忘掉啊啊啊啊啊啊啊啊啊

这个\(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筛的更多相关文章

  1. $Min\_25$筛学习笔记

    \(Min\_25\)筛学习笔记 这种神仙东西不写点东西一下就忘了QAQ 资料和代码出处 资料2 资料3 打死我也不承认参考了yyb的 \(Min\_25\)筛可以干嘛?下文中未特殊说明\(P\)均指 ...

  2. 「笔记」$Min\_25$筛

    总之我也不知道这个奇怪的名字是怎么来的. \(Min\_25\)筛用来计算一类积性函数前缀和. 如果一个积性函数\(F(x)\)在质数单点是一个可以快速计算的关于此质数的多项式. 那么可以用\(Min ...

  3. Min_25筛学习笔记

    感觉好好用啊 Luogu上的杜教筛模版题一发 Min_25抢到了 rank1 $ Updated \ on 11.29 $被 STO txc ORZ踩爆啦 前言 $ Min$_$25$筛可以求积性函数 ...

  4. [复习]莫比乌斯反演,杜教筛,min_25筛

    [复习]莫比乌斯反演,杜教筛,min_25筛 莫比乌斯反演 做题的时候的常用形式: \[\begin{aligned}g(n)&=\sum_{n|d}f(d)\\f(n)&=\sum_ ...

  5. 【51NOD 1847】奇怪的数学题(莫比乌斯反演,杜教筛,min_25筛,第二类斯特林数)

    [51NOD 1847]奇怪的数学题(莫比乌斯反演,杜教筛,min_25筛,第二类斯特林数) 题面 51NOD \[\sum_{i=1}^n\sum_{j=1}^nsgcd(i,j)^k\] 其中\( ...

  6. 【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\ ...

  7. uoj#188. 【UR #13】Sanrd(Min_25筛)

    题面 传送门 题解 这是一道语文题 不难看出,题目所求即为\(l\)到\(r\)中每个数的次大质因子 我们考虑\(Min\_25\)筛的过程,设 \[S(n,j)=\sum_{i=1}^nsec_p( ...

  8. [学习笔记]min_25筛

    神佬yyb 神佬zsy 想不到花了两个小时的时间看 \(min\_25\) 筛就看懂了 实际去追了一下魔禁3 我们先举个例子.如求 \[\sum_{i=1}^{n}f(i)\] 其中 \(f(i)\) ...

  9. 【UOJ#188】Sanrd(min_25筛)

    [UOJ#188]Sanrd(min_25筛) 题面 UOJ 题解 今天菊开讲的题目.(千古神犇陈菊开,扑通扑通跪下来) 题目要求的就是所有数的次大质因子的和. 这个部分和\(min\_25\)筛中枚 ...

  10. uoj#448. 【集训队作业2018】人类的本质(Min_25筛+拉格朗日插值)

    题面 传送门 题解 肝了整整一天--膜拜yww和cx巨巨--(虽然它们的题解里我就没看懂几个字) 请备好草稿纸和笔,这种题目就是需要耐心推倒 题目所求是这么一个东西 \[ \begin{aligned ...

随机推荐

  1. Android HAL层与Linux Kernel层驱动开发简介

    近日稍微对Android中的驱动开发做了一些简要的了解. HAL:Hardware Abstract Layer 硬件抽象层,由于Linux Kernel需要遵循GPL开源协议,硬件厂商为了保护自己硬 ...

  2. Pokemon Master

    Pokemon Master Time Limit : 4000/2000ms (Java/Other) Memory Limit : 131072/65536K (Java/Other) Total ...

  3. c 无回显读取字符/不按回车即获取字符

    最近课程设计要使用各种有趣的函数,这是其中一个 #include <conio.h> 使用方法 char c; c=getch(); 这样按下输入一个字符不按回车就ok了

  4. CodeForces - 1017D Round #502 D. The Wu(状压预处理)

    D. The Wu time limit per test 2 seconds memory limit per test 256 megabytes input standard input out ...

  5. 删除重复Row记录数据

    使用CTE,ROW_NUMBER,PARTITION BY来处理数据表重复记录. 先准备下面的数据: IF OBJECT_ID('tempdb.dbo.#Part') IS NOT NULL DROP ...

  6. pandas基础(1)_Series和DataFrame

    1:pandas简介 Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的.Pandas 纳入了大量库和一些标 ...

  7. Python之路(四十一):通过项目来深入理解tornado

    Tornado之路   引子 与其感慨路难行,不如马上出发 目录 通过项目来深入理解tornado(一):tornado基础回顾 通过项目来深入理解tornado(二):AsyncHttpClient ...

  8. c++中调用python脚本提示 error LNK2001: 无法解析的外部符号 __imp_Py_Initialize等错误的解决方法

    最近项目中需要实现一个服务器宕机后短信提醒的功能,个人觉得在使用Python 写http请求这块很方便,发短信这块就使用了python,但是c++程序中调用这个脚本时,编译不通过,提示如下错误: er ...

  9. 同余方程 (codevs1200)

    题目描述××× 求关于 x 的同余方程 ax ≡ 1 (mod b)的最小正整数解. 输入输出格式××× 输入格式: 输入只有一行,包含两个正整数 a, b,用一个空格隔开. 输出格式: 输出只有一行 ...

  10. 取消eclipse英文单词拼写验证

    依次点击Preferences->General->Editors->TexEditors->Spelling->Enable Spell Checkingt , 如下图 ...