快速网站建设多少钱,舟山网站建设推广,深圳做软件开发的公司,做照片书的模板下载网站好杜教筛 1.概述 杜教筛是用以解决积性函数前缀和的算法。
在学习了莫比乌斯反演之后#xff0c;杜教筛的过程就会显得简单而自然。 2.基本形式 对于积性函数#xff0c;我们定义如下函数#xff1a; 构造积性函数 #xff0c;使得
显然 #xff1a; 进一步转化#xf…杜教筛 1.概述 杜教筛是用以解决积性函数前缀和的算法。
在学习了莫比乌斯反演之后杜教筛的过程就会显得简单而自然。 2.基本形式 对于积性函数我们定义如下函数 构造积性函数 使得
显然 进一步转化 也就是 把右式的第一项提出 进一步整理得 显然如果我们能够快速算出任意的 就能够通过数论分块在的时间内求出。 3.一些常见函数的杜教筛形式 3.1 函数的前缀和
有一个显而易见的结论
设
由杜教筛易得 3.2 函数的前缀和
有一个显而易见的结论
设
由杜教筛易得 4.一些总结 杜教筛作为一个数论算法代码实现不算太难但有几个小细节需要注意 是需要全部记录的需要用到unordered_map或者 map多一个log。实测unordered_map、map时间差不多容易爆long long
平时遇到积性函数求和并且高达就可以尝试用杜教筛来解。
当然杜教筛有一个弊端没有一个系统的构造函数的方法。
如果遇到一个难以构造的积性函数可以尝试使用 _筛、洲阁筛(啥你不会我也不会qwq那自求多福吧QAQ~)。