总之我也不知道这个奇怪的名字是怎么来的。

\(Min\_25\)筛用来计算一类积性函数前缀和。

如果一个积性函数\(F(x)\)在质数单点是一个可以快速计算的关于此质数的多项式。

那么可以用\(Min\_25筛\)。

这个东西和质数关系很大。

我们考虑分开处理质数和非质数的贡献。

首先处理质数:

设,\(R(n)\)为\(n\)的最小质因子,\(P\)为质因子集合,\(p_i\)为从小到大第\(i\)个质数。

\(\forall\ x\in P,F(x)=x^k\)。

设:

\[g(n,j)=\sum\limits_{i=1}^{n}i^k[i\in P||R(i)>p_j]
\]

那么转移:

如果当前\(p_j^2>n\),因为最小的含有\(p_j\)的合数是\(p_j^2\),所以没有贡献需要减掉。

那么:

\[g(n,j)=g(n,j-1)
\]

如果当前\(p_j^2<=n\),这个时候要减掉一些贡献了。

这些贡献是\(p_j\)所带来的,而这个时候左右\(R(i)=p_j\)的贡献都需要被减掉。

考虑求出这部分的贡献。

那么显然是对于其所能达到的最小的合数开始计算到所能达到的最大合数。

这一部分显然是属于\([p_j^2,n]\)。

那么考虑这一部分的贡献。

可以容易的得到转移方程。

\[g(n,j)=g(n,j-1)-p_j^k(g(\frac{n}{p_j},j-1)-g(p_j-1,j-1))
\]

这样合并转移表达式就是:

\[g(n,j)=
\begin{cases}
g(n,j-1)&p_j^2>n\\
g(n,j-1)-p_j^k(g(\frac{n}{p_j},j-1)-g(p_j-1,j-1))&p_j^2\leq n\\
\end{cases}
\]

初始化一下:

\[g(p_j,j)=\sum\limits_{i=1}^{j}p_i^k
\]

这样我们就计算了质数部分了。

然后考虑计算真正的函数前缀和。

设$$S(n,j)=\sum\limits_{i=1}^{n}F(i)[R(i)\geq p_j]$$

区分计算质数和合数的贡献。

考虑质数部分:\(g(n,|P|)-\sum\limits_{i=1}^{j-1}F(p_i)\)

合数部分考虑枚举最小质因子及其在某个数中的幂次,这里要满足\(\frac{n}{p_k^e}>p_k\),这样才能保证这个数的最小质因数被除尽。

由于我们先暂时的不考虑1的贡献,所以需要加上\(p_k\)的某次幂的贡献,所以这里的贡献是:

\[\sum\limits_{k\geq j}\sum\limits_{p_k^{e+1}<n}(F(p_k^e)S(\frac{n}{p_k^e},k+1)+F(p_k^{e+1}))
\]

这样就得到了我们的递推式了:

\[S(n,j)=g(n,|P|)-\sum\limits_{i=1}^{j-1}F(p_i)+\sum\limits_{k\geq j}\sum\limits_{p_k^{e+1}<n}(F(p_k^e)S(\frac{n}{p_k^e},k+1)+F(p_k^{e+1}))
\]

答案就是:

\[ans=S(n,1)+F(1)
\]

复杂度不知道。

但是在\(n\leq 10^{13}\)范围里面跑得很快而且比州阁筛好写很多。

「笔记」$Min\_25$筛的更多相关文章

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

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

  2. 「笔记」AC 自动机

    目录 写在前面 定义 引入 构造 暴力 字典图优化 匹配 在线 离线 复杂度 完整代码 例题 P3796 [模板]AC 自动机(加强版) P3808 [模板]AC 自动机(简单版) 「JSOI2007 ...

  3. 「AGC020D」 Min Max Repetition

    「AGC020D」 Min Max Repetition 传送门 首先这个东西的连续字符个数你可以二分.但事实上没有必要,这是可以直接算出来的. 即 \(k=\max\{\lceil\frac{A}{ ...

  4. Linux 小知识翻译 - 「RAID」

    最近术语「RAID」变得比较有名.「RAID」是指将多个HDD组合起来使用,从而提高存储可靠性的一种技术. 那么,关于 RAID 中的 「RAID 0」「RAID 1」「RAID 5」等各种「RAID ...

  5. 「BZOJ 1876」「SDOI 2009」SuperGCD「数论」

    题意 求\(\gcd(a, b)\),其中\(a,b\leq10^{10000}\) 题解 使用\(\text{Stein}\)算法,其原理是不断筛除因子\(2\)然后使用更相减损法 如果不筛\(2\ ...

  6. 语义分割丨PSPNet源码解析「测试阶段」

    引言 本文接着上一篇语义分割丨PSPNet源码解析「网络训练」,继续介绍语义分割的测试阶段. 模型训练完成后,以什么样的策略来进行测试也非常重要. 一般来说模型测试分为单尺度single scale和 ...

  7. 正则表达式从入门到放弃「Java」

    正则表达式能做什么? 正则表达式可以用来搜索.编辑或处理文本. 「都懂它可以处理文本,可到底是怎么回事?」 正则表达式的定义 百度百科:正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特 ...

  8. 🔥SpringBoot图文教程2—日志的使用「logback」「log4j」

    有天上飞的概念,就要有落地的实现 概念+代码实现是本文的特点,教程将涵盖完整的图文教程,代码案例 文章结尾配套自测面试题,学完技术自我测试更扎实 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例 ...

  9. Scala 学习(10)之「集合 」

    数组 定长数组 Array:采用()访问,而不是[],下标从 0 开始. val array1 = new Array[String](5) //创建数组 println(array1) //返回数组 ...

随机推荐

  1. 在C#中使用RSA进行加密和解密

    这篇文章向您展示了如何在c#.net Windows窗体应用程序中使用RSA算法对字符串进行加密和解密.RSA是由Ron Rivest,Adi Shamir和Leonard Adleman开发的非对称 ...

  2. redis存取数据list

    登录redis客户端 一.存取数据 1.左右添加数据 2.读取数据lrange 3.左右固定弹出一个元素 4.列表中个数 5.删除元素值为value的元素 count 值要自己给定: 6.获取和设置指 ...

  3. sort-uniq-tr-cut命令 对文件处理相关操作

    目录: 一.sort命令 二.uniq命令 三.tr命令 四.cut命令 五.eval命令 一.sort命令 以行为单位对文件内容进行排序,也可以根据不同的数据类型来排序 语法格式 sort [选项] ...

  4. eclipes常见操作总结及项目2和3经验总结

    eclipes常见操作总结及项目2经验总结 eclipes提示: 打开eclipes 选择window->perference->java->editor->content a ...

  5. python中dump与dumps的区别

    刚写了一个代吗,没有搞懂dump和dumps的区别,现在搞懂了,下班后在来整理import pickleq = [1,2,3,4]pickle.dump(q,open("cb1.txt&qu ...

  6. idea创建Maven项目没有src目录,且依赖也没有更新

    刚开始用idea的时候,重新配置安装了Maven,但是创建项目的时候发现创建的目录少了很多东西,今天重新查看了一下,发现了原因....... 话不多说,安装配置Maven的方法网上都有,我之前改路径的 ...

  7. 安卓使用讯飞sdk报错

    java.lang.NullPointerException: Attempt to invoke virtual method 'boolean com.iflytek.cloud.SpeechSy ...

  8. 【PHP数据结构】顺序表(数组)的相关逻辑操作

    在定义好了物理结构,也就是存储结构之后,我们就需要对这个存储结构进行一系列的逻辑操作.在这里,我们就从顺序表入手,因为这个结构非常简单,就是我们最常用的数组.那么针对数组,我们通常都会有哪些操作呢? ...

  9. django 安装与配置-01

    安装命令 sudo pip install django python 可以引入django说明已经安装成功 查看django的版本 查看django管理命令 django-admin django创 ...

  10. redis小结 1-1

    1.1什么是resis Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. 1.2Redis 与其他 key - value 缓存产品有以下三个特点 Redis支持 ...