随笔分类 -  线性筛

摘要:可以发现这个过程非常类似埃氏筛,将在该区间内没有约数的数定义为质数,那么也就是求每种方案中选完所有质数的最早时间之和。 于是先求出上述定义中的质数个数,线性筛即可。然后对每个最短时间求方案数,非常显然的组合数。最好特判一下l=1的情况,毕竟如果1作为质数会有奇怪的事。 我的线性筛……跑的几乎跟埃氏筛 阅读全文
posted @ 2018-12-15 14:43 Gloid 阅读(179) 评论(0) 推荐(0)
摘要:一通套路后得Σφ(d)μ(D/d)⌊n/D⌋2。显然整除分块,问题在于怎么快速计算φ和μ的狄利克雷卷积。积性函数的卷积还是积性函数,那么线性筛即可。因为μ(pc)=0 (c>=2),所以f(pc)还是比较好算的,讨论一波即可。 阅读全文
posted @ 2018-11-16 21:50 Gloid 阅读(206) 评论(0) 推荐(0)
摘要:既然已经学傻了,这个题当然是上反演辣。 对于求积的式子,考虑把[gcd=1]放到指数上。一通套路后可以得到∏D∏d∏i∏j (ijd2)μ(d) (D=1~n,d|D,i,j=1~n/D)。 冷静分析一下,由μ*1=e,后面一串ij相关的式子仅当D=1时有贡献。这一部分就非常好算了。而d对某个D的贡 阅读全文
posted @ 2018-10-07 23:59 Gloid 阅读(159) 评论(0) 推荐(0)
摘要:注意到n很小,考虑枚举i。现在要求的是f(n,m)=Σφ(in) (i=1~m)。显然当n没有平方因子时,φ(in)=φ(i)·φ(n/gcd(i,n))·gcd(i,n)。利用φ*1=id又可得φ(i,n)=φ(i)·Σφ(n/d) (d|gcd(i,n))。改为枚举d就可以得到f(n,m)=Σφ 阅读全文
posted @ 2018-09-24 10:41 Gloid 阅读(166) 评论(0) 推荐(0)
摘要:一通正常的莫比乌斯反演后,我们只需要求出g(n)=Σf(d)*μ(n/d)的前缀和就好了。 考虑怎么求g(n)。当然是打表啊。设n=∏piai,n/d=∏pibi 。显然若存在bi>1则这个d没有贡献。考虑bi为0和1两种情况。如果只看ai最小的质因子的选取情况,会发现大部分情况下其是0还是1,对f 阅读全文
posted @ 2018-09-20 22:27 Gloid 阅读(167) 评论(0) 推荐(0)
摘要:一通套路之后得到 求出中间那个函数的前缀和的话就可以整除分块了。 暴力求的话复杂度其实很优秀了,大约在n~nlogn之间。 不过可以线性筛做到严格线性。考虑其最小质因子,如果是平方因子那么只有其有贡献,否则由于多了一个质因子,将函数值取反并加上该质因子贡献。 阅读全文
posted @ 2018-09-02 13:21 Gloid 阅读(149) 评论(0) 推荐(0)