首页 > 其他分享 >学习笔记:MIn_25筛

学习笔记:MIn_25筛

时间:2023-01-02 17:23:09浏览次数:40  
标签:lfloor 25 MIn sum 笔记 因子 minp 质数

Min_25 筛 学习笔记

叫这个名字是因为这是 \(Min\_25\) 神犇发明的,主要用到的思想是对于质数和合数分开计算。

适用范围

对于一个积性函数 \(f(x)\) 求解:

\[\sum_{i=1}^{n}f(i) \]

要求:\(f(p)\) ( \(p\) 为质数)是一个关于 \(p\) 的项数较少的多项式或可以快速求值,且 \(f(p^e)\) 可以快速求值

原理

首先考虑求解一个函数 \(G(n)=\sum_{i=1}^{n}[i \in prime]f(i)\),即 \(n\) 以内所有质数的函数值。

考虑 \(dp\) 求解,定义 \(g(i,m)=\sum_{i=1}^{m}[i \in prime \; or \; minp(i)>p[j]]f'(i)\)

其中 \(minp(i)\) 表示 \(i\) 中最小质因子,\(p[i]\)表示第 \(i\) 个质数。

\(f'(i)\)是一个完全积性函数,满足当 \(i\) 为质数是取值与 \(f(i)\) 相同且前缀和可以快速求解

\(dp\) 边界 \(g(0,m)=\sum_{i=2}^{m}f'(i)\)

当 \(p[i]^2>m\) 时,\(m\) 内不存在最小质因子为 \(p[i]\) 的合数,不会造成贡献,所以 \(g(j,m)=g(j-1,m)\)

当 \(p[i]^2\le m\) 时:

\[g(i,m)=g(i-1,m)-f'(p[i])(g(i-1,\lfloor \frac{m}{p[i]} \rfloor )-\sum_{j=1}^{i-1}f'(j)) \]

当 \(i-1\) 变成 \(i\) 时,所有最小质因子为 \(p[i]\) 的都被筛掉,因为 \(f'(i)\) 是完全积性函数,提出一个 \(f(p[i])\),剩下的要筛掉的就是最小质因子大于等于\(p[i]\) 的数,因为多算了 \(g(i-1,\lfloor \frac{m}{p[i]} \rfloor )\)里的质数所以要减掉

则 \(G(m)=g(x,m)\),\(x\) 是小于等于 \(m\) 的质数个数

设 \(S(n,j)=\sum_{i=1}^{n}[minp(i) \ge p[j]]f(i)\)

质数的贡献为 \(G(n)-\sum_{i=1}{j-1}f(p[i])\)

合数的贡献可以枚举最小质因子和它的次数

\[ S(n,j)=G(n)-\sum_{i=1}^{j-1}f(p[i])+\sum_{i=j}^{p[i]^2\leq n}\sum_{e=1}^{p[i]^{e+1}\leq n}\Big(f(p[i]^e)S(\lfloor\frac{n}{p[i]^e}\rfloor,i+1)+f(p[i]^{e+1})\Big) \]

标签:lfloor,25,MIn,sum,笔记,因子,minp,质数
From: https://www.cnblogs.com/blue-tsg/p/17020220.html

相关文章

  • Terminal Seting
    PowerShell配置文件脚本,每次启动之后自动加载notepad$PROFILE在配置文件里添加以下行:oh-my-poshinitpwsh--config'$env:POSH_THEMES_PATH\jandedobbeleer.omp.jso......
  • MySql学习笔记--基础篇02
    约束外键--父表和子表,如果要删除父表的记录时,会判断子表是否存在关联关系,如果存在不予删除  多表关系一对多,在此表中建立外键关联主表的主键多对多,建立第三张中......
  • 狂神说Java(零基础) Java入门笔记
    1.Java帝国的诞生​1972年C诞生,比1995年诞生的Java早了20多年。C贴近硬件,运行极快,效率极高,用于操作系统、编译器、数据库、网络系统等,但是在指针和内存管理方面,常常让程序......
  • Git和Maven的学习笔记
    Git1、Git简介Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。Git易于学习,占地面积小,性能极快。它具有廉价的本地库,方便的......
  • C++笔记整理
    把自己印象笔记中所记录的一些C++知识点整合了一下,可用于面试前对C++知识的快速回顾。不过并不全,只是自己笔记中的摘要,重要的还是系统和踏实地学习。每个知识点不分顺序。1.......
  • 多项式乘法学习笔记
    多项式乘法给定两个多项式\(A(x)=\sum_{i=0}^{n-1}{a_ix^i}\)\(B(x)=\sum^{m-1}_{i=0}{b_ix^i}\)求\(C(x)=A(x)\timesB(x)=\sum_{i=0}^{n+m-1}{c_ix^i}\)......
  • 在线视频项目学习笔记(四)—前台分类相关
    一、分类列表接口 即在分类模块显示所有的一级分类以及其子类。   注意:上图中在返回的对象中封装了一个List二、根据分类ID查询分类的具体信息 ......
  • GitHub 上 25 个 Python 学习资源,墙裂推荐!
    “阅读本文大概需要7分钟。”英文:thecarrots根据2020年StackOverflow开发者调查报告,Python是世界上最受欢迎的语言之一,排名仅次于Rust和TypeScript。更令人惊讶的......
  • 笔记本 AUTO模式是什么意思
    相关文章电脑AUTO是什么意思https://zhidao.baidu.com/question/1645428036244428940.html##简介电脑屏幕、显示器上的按键“AUTO”是用来自动校对屏幕显示的位置的按......
  • vue2 项目25
    app.js:<template><divid="app"><router-view></router-view></div></template><stylelang="less">body,html{margin:0;padding:0;height......