min_25筛小记

Posted 275307894a

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了min_25筛小记相关的知识,希望对你有一定的参考价值。

不太清楚这东西的复杂度(

我们将这个题分成两个部分,先求所有质数的函数值之和,然后求所有数的函数值之和。

对于质数来说,这个函数就是一个多项式,将所有项分开考虑。我们假设现在所有数的函数都是这样的,只不过最后只保留质数的答案。

现在有一个很开脑洞的思路,就是设 \\(S(n,k)\\) 表示在前 \\(n\\) 个数中,是质数或者最小质因子大于 \\(p_k\\) 的数的函数值之和。我们让 \\(S(n,k)\\)\\(S(n,k-1)\\) 转移过来,这样需要减去最小质因子恰好为 \\(p_k\\) 的合数,是 \\(p_k(S(\\fracnp_k,k-1)-sp_k-1)\\),其中 \\(sp_k\\) 表示前 \\(k\\) 个质数的函数值之和。

这东西的复杂度是多少呢?首先我们发现 \\(n\\) 只有 \\(\\sqrt n\\) 种取值,都是整除分块出来的。其次 \\(p_k^2\\leq n\\),列出式子是 \\(\\int_1^\\sqrt n\\frac\\sqrt x\\ln x\\,\\mathrmdx+\\int_1^\\sqrt n\\frac\\sqrt\\fracnx\\ln n-\\ln x\\,\\mathrmdx=O(\\fracn^\\frac34\\ln n)\\)

然后考虑推广到一般的情况,这时候就不能把所有项拆开,要一起看。设 \\(g_n\\) 表示上面求出来的 \\(\\leq n\\) 的质数的函数值之和,设 \\(S(n,k)\\) 表示前 \\(n\\) 个数中最小质因子大于 \\(p_k\\) 的数的函数值之和,先是大于 \\(p_k\\) 的质数,是 \\(g_n-sp_k\\),然后枚举最小的质因子 \\(p_i\\) 及其次数 \\(e\\),就从 \\(f(p_k^e)(S(\\fracnp_k^e,i)+[e\\not=1])\\) 转移。其中加上 \\(e\\not =1\\) 的意义是加上单纯是这个数的幂次的数的函数值和。直接从 \\(S(n,0)\\) 开始递归就行,时间复杂度据说也是 \\(O(\\fracn^\\frac34\\ln n)\\) 的,有无懂哥教教证明。这一部分应该是可以和第一部分差不多做的,但是听说在现有数据范围下还跑不过直接递归?可能递归访问的状态数比较少?

模板题submission

另外这东西好像最有用的是第一部分,常常用来求区间质数信息啥的,比如这个,根据 submission 合理推断发现大概 1s 能跑 1e12。

以上是关于min_25筛小记的主要内容,如果未能解决你的问题,请参考以下文章

LG5325 模板Min_25筛

Min_25筛

min_25筛

min_25筛

min_25筛

min_25筛