min_25筛

用途

f(x)f(x)f(x)是一个积性函数,min_25筛可以在O(n34log⁡n)O(\frac{n^{\frac{3}{4}}}{\log n})O(lognn43)内求f(x)f(x)f(x)的前缀和:∑i=1Nf(i)\sum_{i=1}^{N}f(i)i=1Nf(i)

使用要求:f(p),f(pk)f(p),f(p^k)f(p),f(pk)的值可以快速求出(p∈Prime)(p\in Prime)(pPrime)

算法

Step 1:求∑i=1n[i∈Prime]f(i)\sum_{i=1}^{n}[i\in Prime]f(i)i=1n[iPrime]f(i)

约定PPP表示质数集合,PiP_iPi表示第iii个质数

首先我们要根据f(x)f(x)f(x)在质数处的点值的表达式构造出F(x)F(x)F(x)(有时需要把f(x)f(x)f(x)拆成多个F(x)F(x)F(x),满足 F(x)F(x)F(x)是一个完全积性函数,并且F(x)F(x)F(x)的和可以迅速转换成f(x)f(x)f(x)的和

然后设g(n,j)=∑i=1nF(i)[i∈Pori的最小质因数>Pj]g(n,j)=\sum_{i=1}^nF(i)[i\in P\ \ or \ \ i的最小质因数>P_j ]g(n,j)=i=1nF(i)[iP  or  i>Pj]

∑i=1n[i∈P]F(i)\sum_{i=1}^{n}[i\in P]F(i)i=1n[iP]F(i)即为g(n,∣P∣)g(n,|P|)g(n,P)∣P∣|P|PPPP集合的大小)

考虑ggg的转移:

  1. Pj2>nP_j^2>nPj2>n
    显然不会产生新的贡献了,此时有g(n,j)=g(n,j−1)g(n,j)=g(n,j−1)g(n,j)=g(n,j1)

  2. Pj2≤nP_j^2\leq nPj2n
    g(n,j)=g(n,j−1)−∑[i的最小质因数=Pj]F(i)g(n,j)=g(n,j-1)-\sum[i的最小质因数=P_j]F(i)g(n,j)=g(n,j1)[i=Pj]F(i)
    =g(n,j−1)−F(Pj)∑[i的最小质因数=Pj]F(iPj)=g(n,j-1)-F(P_j)\sum[i的最小质因数=P_j]F(\frac{i}{P_j})=g(n,j1)F(Pj)[i=Pj]F(Pji)
    =g(n,j−1)−F(Pj)∑k=Pj⌊nPj⌋[k的最小质因数>Pj−1]F(k)=g(n,j-1)-F(P_j)\sum_{k=P_j}^{\lfloor\frac{n}{P_j}\rfloor}[k的最小质因数>P_{j-1}]F(k)=g(n,j1)F(Pj)k=PjPjn[k>Pj1]F(k)
    =g(n,j−1)−F(Pj)[g(⌊nPj⌋,j−1)−g(Pj−1,j−1)]=g(n,j-1)-F(P_j)[g(\lfloor\frac{n}{P_j}\rfloor,j-1)-g(P_j−1,j−1)]=g(n,j1)F(Pj)[g(Pjn,j1)g(Pj1,j1)]

关于ggg的初值:

考虑一下ggg的实际含义是什么呢?可以参考一下埃氏筛法的运行过程。

假设现在有nnn个数依次排开,第iii个数是f(i)f(i)f(i),根据埃氏筛法的那套理论,每次选出一个质数ppp,然后筛掉所有f(k×p)f(k\times p)f(k×p)(k>=2)(k>=2)(k>=2)

会发现g(n,j)g(n,j)g(n,j)就是运行jjj次埃氏筛法后,没被筛掉的所有数之和。

这里递推的起点是g(n,0)g(n,0)g(n,0)g(n,0)g(n,0)g(n,0)的含义是把所有的数字当作质数,然后求∑i=1nF(i)\sum_{i=1}^nF(i)i=1nF(i)

最后,我们把F(x)F(x)F(x)转回f(x)f(x)f(x)
g(n,j)g(n,j)g(n,j)表示∑i=1nf(i)[i∈Pori的最小质因数>Pj]\sum_{i=1}^nf(i)[i\in P\ \ or \ \ i的最小质因数>P_j ]i=1nf(i)[iP  or  i>Pj]
∑i=1n[i∈P]f(i)\sum_{i=1}^{n}[i\in P]f(i)i=1n[iP]f(i)即为g(n,∣P∣)g(n,|P|)g(n,P)

编码细节:

  1. 转移ggg只需用到N\sqrt NN以内的质数,先线性筛预处理出这些质数
  2. ggg只需要开第一维
  3. 题目中的NNN往往很大,nnn直接枚举的话会炸掉。所以要预处理一个集合S={⌊Nx⌋∣x∈[1,N]}S=\{\lfloor\frac{N}{x}\rfloor|x\in[1,N]\}S={xNx[1,N]},集合SSS的大小∣S∣=2N|S|=2\sqrt NS=2N。递推式中,⌊nPj⌋\lfloor\frac{n}{P_j}\rfloorPjn一定∈S\in SS,因为Pj≤NP_j\leq \sqrt NPjN,,而所有≤N\leq\sqrt NN的数都可以通过⌊Nx⌋\lfloor\frac{N}{x}\rfloorxN得到,所以Pj−1∈SP_j-1\in SPj1S。在具体实现时,先把SSS离散化一下,调用ggg的第一维时,直接枚举离散化后SSS中各元素的编号。

Step 2:求最终答案

S(n,j)=∑i=1nf(i)[i的最小质因数>=Pj]S(n,j)=\sum_{i=1}^{n}f(i)[i的最小质因数>=P_j]S(n,j)=i=1nf(i)[i>=Pj]

最终答案即为S(n,1)+f(1)S(n,1)+f(1)S(n,1)+f(1)

考虑SSS的转移:

  1. 算1~n中质数的贡献:
    S(n,j)+=g(n,j)−∑i=1j−1f(Pi)S(n,j)+=g(n,j)−\sum_{i=1}^{j−1}f(P_i)S(n,j)+=g(n,j)i=1j1f(Pi)
    ∑i=1j−1f(Pi)=g(Pj−1,j−1)\sum_{i=1}^{j−1}f(P_i)=g(P_{j-1},j-1)i=1j1f(Pi)=g(Pj1,j1)

  2. 算1~n中合数的贡献:
    S(n,j)+=∑k=jPk2≤n∑e=1Pke+1≤nS(nPke,k+1)×f(Pke)+f(Pke+1)S(n,j)+=\sum_{k=j}^{P_k^2\leq n}\sum_{e=1}^{P_k^{e+1}\leq n}S(\frac{n}{P_k^e},k+1)\times f(P_k^e)+f(P_k^{e+1})S(n,j)+=k=jPk2ne=1Pke+1nS(Pken,k+1)×f(Pke)+f(Pke+1)
    (枚举合数的最小质因数及其最小质因数的指数)

边界条件:
if(n<=1∣∣Pj>n)return0;if(n<=1||P_j>n)\ return\ 0;if(n<=1Pj>n) return 0;

编码细节:

  1. 同上,ggg的第一维用离散化后SSS中各元素的编号表示

参考博客:
https://www.cnblogs.com/yoyoball/p/9185144.html
https://blog.csdn.net/baiyifeifei/article/details/90454317
https://www.cnblogs.com/zhoushuyu/p/9187319.html
https://www.cnblogs.com/cjyyb/p/9185093.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/320048.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Service Fabric 用 Powershell 部署应用到本地

前置说明安装 Service Fabric SDK&#xff0c;会在本机 C:\Program Files\Microsoft SDKs\Service Fabric\Tools\PSModule\ServiceFabricSDK 生成部署脚本&#xff0c;如下图&#xff1a;用VS创建一个 Service Fabric 应用后&#xff0c;有一个部署脚本&#xff0c;位置在 [应用…

【期望】路径长度(金牌导航 期望-1)

路径长度 金牌导航 期望-1 题目大意 给出一个图&#xff0c;问你从1走到n的期望路径长度 输入样例 4 4 1 2 1 1 3 2 2 3 3 3 4 4输出样例 7.00数据范围 1⩽n⩽1051\leqslant n \leqslant 10^51⩽n⩽105 1⩽m⩽2n1\leqslant m\leqslant 2\times n1⩽m⩽2n 1⩽u,v⩽n1\…

牛客网 【每日一题】6月8日 [SCOI2005]最大子矩阵

链接&#xff1a; 文章目录题目描述题目描述 这里有一个n*m的矩阵&#xff0c;请你选出其中k个子矩阵&#xff0c;使得这个k个子矩阵分值之和最大。 注意&#xff1a;选出的k个子矩阵 不能相互重叠。 输入描述: 第一行为n,m,k&#xff08;1 ≤ n ≤ 100,1 ≤ m ≤ 2,1 ≤ k ≤ …

CF1054D-Changing Array【贪心】

正题 题目链接:https://www.luogu.com.cn/problem/CF1054D 题目大意 一个长度为nnn的序列&#xff0c;每个数小于2k2^k2k&#xff0c;可以选择一些数xorxorxor上2k−12^k-12k−1。要求使得满足alxoral1xor...xorar0a_l\ xor\ a_{l1}\ xor...xor\ a_r0al​ xor al1​ xor...xo…

ElasticSearch入门 附.Net Core例子

1.什么是ElasticSearch?Elasticsearch是基于Lucene的搜索引擎。它提供了一个分布式&#xff0c;支持多租户的全文搜索引擎&#xff0c;它具有HTTP Web界面和无模式JSON文档。 Elasticsearch是用Java开发的&#xff0c;根据Apache许可条款作为开源发布。----来自维基百科的解释…

[XSY]Tree Ext(矩阵树定理,拉格朗日插值,最小生成树,二分)

Tree Ext 这道题相当于把3道题合了起来。 要求修复的边中恰好有 k 条白边&#xff1a; 五颜六色的幻想乡(附拉格朗日插值法求多项式系数 ) bzoj2654 tree(WQS二分 新科技get) 是最小生成树计数而非生成树计数&#xff1a; BZOJ1016」[JSOI2008] 最小生成树计数 具体可以看看…

【期望】乘坐电梯(金牌导航 期望-2)

乘坐电梯 金牌导航 期望-2 题目大意 有n个人&#xff0c;对于没一个单位时间有p的概率最前面的1个人进电梯&#xff0c;有&#xff08;1-p&#xff09;的概率不进&#xff0c;问你t个单位时间后&#xff0c;电梯中的期望人数 样例输入 1 1 0.50 1 样例输出 1 0.5 样例输入…

动态规划练习【一】 背包问题

详细讲解 背包问题大汇总 文章目录背包问题大汇总01背包问题&#xff1a;思路&#xff1a;空间优化复杂度代码总结&#xff1a;完全背包问题&#xff1a;思路&#xff1a;代码&#xff1a;优化多重背包问题&#xff1a;思路&#xff1a;代码&#xff1a;单调队列优化混合三种背…

P3329-[ZJOI2011]最小割【最小割树】

正题 题目链接:https://www.luogu.com.cn/problem/P3329 题目大意 nnn个点mmm条边的无向图&#xff0c;每次询问一个xxx表示最小割不超过xxx的点对数量。 解题思路 我们对于两个点sss到ttt完成网络流后的残量网络上&#xff0c;与sss联通的点属于点集SSS&#xff0c;与ttt联通…

《.NET 性能优化》送书活动结果公布

截止到9月7日18&#xff1a;00&#xff08;规则本是12&#xff1a;00&#xff0c;忙的忘记了这事&#xff0c;18点截的图&#xff09;&#xff0c;本次送书活动《.NET 性能优化》共收到100多位同学参与回复&#xff0c;本次很多同学在看到活动的书 &#xff0c;自行就到异步社区…

【期望】期望收益(金牌导航 期望-3)

期望收益 金牌导航 期望-3 题目大意 给你一个01串&#xff0c;有些位置是未知的&#xff0c;连续的x个1贡献为想x2x^2x2&#xff0c;现在问你该串的期望贡献 输入样例 4 ????输出样例 4.1250数据范围 1⩽n⩽31051\leqslant n \leqslant 3\times 10^51⩽n⩽3105 解题…

杜教筛技巧随记

常见完全积性函数&#xff1a; ϵ(n)[n1]ϵ(n)[n1]ϵ(n)[n1]&#xff08;元函数&#xff0c;满足f∗ϵff*ϵff∗ϵf&#xff09; I(n)1I(n)1I(n)1 id(n)nid(n)nid(n)n 常见卷积&#xff1a; μ∗Iϵ\mu* Iϵμ∗Iϵ ϕ∗Iid\phi*Iidϕ∗Iid f(n)∑i1niϕ(i)f(n)\sum_{i1}^{n}i…

hdu-2844 Coins (混合背包+二进制优化)

HDU链接 文章目录题目描述&#xff1a;题意&#xff1a;题解&#xff08;代码&#xff09;题目描述&#xff1a; 输入描述: 输出描述: For each test case output the answer on a single line. 输入 3 10 1 2 4 2 1 1 2 5 1 4 2 1 0 0输出 8 4题意&#xff1a; 有n种硬币&…

CF1451F-Nullify The Matrix【结论题,博弈论】

正题 题目链接:https://www.luogu.com.cn/problem/CF1451F 题目大意 n∗mn*mn∗m的网格&#xff0c;每个网格上有数字&#xff0c;先后手轮流操作 每次操作选择一个只有往右和往下的路径&#xff0c;让第一个格子减去一个正整数并且随意修改后面的格子。要求完成后所有格子非…

.NET Core WebApi中实现多态数据绑定

什么是多态数据绑定&#xff1f;我们都知道在ASP.NET Core WebApi中数据绑定机制&#xff08;Data Binding&#xff09;负责绑定请求参数&#xff0c; 通常情况下大部分的数据绑定都能在默认的数据绑定器&#xff08;Binder&#xff09;中正常的进行&#xff0c;但是也会出现少…

【期望】期望分数(金牌导航 期望-4)

期望分数 金牌导航 期望-4 题目大意 告诉你一个01串中每个位置是1的概率&#xff0c;对于连续的x个1&#xff0c;贡献为x3x^3x3&#xff0c;问你期望贡献是多少 输入样例 3 0.5 0.5 0.5输入样例 6.0数据范围 1⩽N⩽1051\leqslant N \leqslant 10^51⩽N⩽105 解题思路…

[51NOD1847]奇怪的数学题(杜教筛+min_25筛+第二类斯特林数)

f(x)f(x)f(x)表示xxx的次大约数&#xff0c;有f(x)xx的最小质因数f(x)\frac{x}{x的最小质因数}f(x)x的最小质因数x​&#xff0c;那么 ∑i1n∑j1nsgcd(i,j)k∑i1n∑j1nf(gcd(i,j))k∑d1nf(d)k∑i1n∑j1n[gcd(i,j)d]∑d1nf(d)k∑i1⌊nd⌋∑j1⌊nd⌋[gcd(i,j)1]∑d1nf(d)k⋅(2∑i…

hdu 1059 Dividing

Hdu链接 文章目录题目描述题意&#xff1a;题解&#xff1a;代码&#xff1a;题目描述 输入描述: 输出描述: 示例1 输入 1 0 1 2 0 0 1 0 0 0 1 1 0 0 0 0 0 0输出 Collection #1: Cant be divided.Collection #2: Can be divided.题意&#xff1a; 有价值分别是1~6的6种…

UOJ#284-快乐游戏鸡【长链剖分,线段树】

正题 题目链接:https://uoj.ac/problem/284 题目大意 nnn个点的一棵树&#xff0c;每个点有一个wiw_iwi​表示至少死亡wiw_iwi​次才能通过这个点&#xff0c;否则就会死亡。只能往子节点走&#xff0c;mmm此询问从sis_isi​走到tit_iti​至少要死多少次。 解题思路 也就算我…

【期望】彩色圆环(金牌导航 期望-5)

彩色圆环 金牌导航 期望-5 题目大意 给你一个环&#xff0c;每个位置的数字等概率为1~m中的其中一个&#xff0c;对于连续的相同数字的串&#xff0c;记其长度为aia_iai​&#xff0c;求aia_iai​的积的期望值 输入样例 8 1输出样例 8.00000数据范围 1⩽N⩽200,1⩽M⩽109…