线性筛/欧拉筛
文章平均质量分 69
linkfqy
A link to FQY.
展开
-
关于素数筛法的一点讨论
前言在数论领域,解决问题时经常会有得到素数的需求 如何快速得到一定范围内的所有素数,就成了人们一直追求的问题 这里列举一些素数筛法,也许会有帮助埃氏筛法(Sieve of Eratosthenes)笔者在最早接触数论时,就学到的算法 思路比较简单: 对于每个素数,都枚举其倍数打上标记 那么没打过标记的就都是素数了 示例程序:原创 2017-06-28 19:45:07 · 1031 阅读 · 3 评论 -
【欧拉筛/线性筛】BZOJ2813 奇妙的Fibonacci
题面在这里一道很好的数论题……让人思考很多……参考博客:斐波那契数列的性质 首先有这个公式: n|m⇔fn|fmn|m\Leftrightarrow f_n|f_m 那么题目就转化为:询问i有多少个因子,以及所有因子的平方和可以用欧拉筛一边处理一边统计: eie_i表示i的最小质因数的次数 did_i表示i除去最小质因数后的数 gig_i表示i的因子个数 fif_i表示i的因子的平方和原创 2017-06-29 10:48:44 · 799 阅读 · 4 评论 -
【欧拉筛+主席树】CodeChef PRMQ Chef and Prime Queries
题面在这里其实非常傻逼……一看就知道是主席树了吧……重点在如何快速对每个aia_i拆分质因子其实可以在欧拉筛的同时记录nxt[x]nxt[x]表示xx除以最小的质因子后得到的数(因为欧拉筛对每个合数仅标记一次)然后对aia_i分解质因子就是O(log ai)O(log\space a_i)的了所以总复杂度为O(nlogn⋅log ai)O(nlogn\cdot log\space a_i)勉强可以过原创 2017-10-28 15:42:27 · 547 阅读 · 0 评论