请你想出一个算法求出n以内(含n)的所有素数,要求算法的时间复杂度越小越好。 这里介绍一种算法——快速线性素数筛法(欧拉筛法),时间复杂度O(n)。 诀窍在于:筛除合数时,保证每个合数只会被它的最小质因数筛去。因此每个数只会被标记一次,所以算法时间复杂度为O(n)。 具体请看下面的代码,主要函数是P ...
分类:
其他好文 时间:
2017-11-11 00:38:24
阅读次数:
198
筛法 欧拉函数 逆元 gcd、lcm、exgcd 快速幂 矩阵乘法 排列组合 分解质因数 筛法 1.筛法: 埃式筛 O( nloglogn ) 欧拉筛(线性筛) O ( n ) 2.欧拉函数: φ(n)表示n的欧拉函数,对任意正整数n,欧拉函数是小于或等于n的正整数中与n互质的数的个数。(1也算)( ...
分类:
其他好文 时间:
2017-11-09 19:49:15
阅读次数:
157
【素数判定】 假设输入的都是正数,时间复杂度O(sqrt(n)) 【因数枚举】 时间复杂度O(sqrt(n)). 【质因数分解】 时间复杂度O(sqrt(n)). 【n以内的素数】 埃氏筛法,时间复杂度O(log(log(n))),近似于O(n)。 ...
分类:
编程语言 时间:
2017-11-09 00:49:24
阅读次数:
196
【SinGuLaRiTy-1047】 Copyright (c) SinGuLaRiTy 2017. All Rights Reserved. 质因数分解 欧拉线性筛素数 筛法求欧拉函数(线性) Miller-Rabbin素数判定法 倍增求快速幂 大数乘法取幂 GCD & LCM 至于LCM=a*b ...
分类:
其他好文 时间:
2017-11-05 17:23:49
阅读次数:
205
题意:n个格子,m个球,让你把球放入某些格子里,使得所有有球的格子之间的距离(abs(i-j))均为素数 ,让你输出方案数。 只占一个格子或者两个格子显然可行。 占有三个格子的情况下,则必须保证其中两者的间距为2,另两者的间距为一个+2以后仍为素数的素数。这个可以预处理。 占有四个格子的情况下,间距 ...
分类:
其他好文 时间:
2017-10-28 18:52:50
阅读次数:
144
数论第一篇随笔,就讲一下质数筛法吧 质数,也称做素数,在数学中有着重要的地位,有很多问题与算法都与质数有关(比如给你的hash函数选择一个好的质数可以让你的RP++)。对质数的最基本操作,就是输出所有不大于n(n∈N*)的素数。 最简单的方法:首先逐个枚举从 2 ~ n 的数a,分别模 2 ~ sq ...
分类:
其他好文 时间:
2017-10-25 00:59:09
阅读次数:
175
Luogu八连测ROUND4 T14561 思路:模拟就好啦,前面定义变量的时候非常头不行的把f和len全定义成了char类型,然后gg... T14562 思路:链表,套啊套啊套就出来了,注意数组要开大一点,题目说是1e5但是开1e5+10的数组会有4个点RE... T14563 思路:dfs,枚 ...
分类:
其他好文 时间:
2017-10-25 00:41:40
阅读次数:
111
知识点: 1.整数 1.1埃氏筛法:暴力枚举打表 O(nloglogn) 1.2线性筛法:对于每个数x,遇到x%prime[i]==0的第一个i退出,使得每个合数都被它的最小质因子筛掉 O(n) 例1.1H-合成数poj3292:暴力的一题 筛数打标记O(nlogn) 例1.2求最小质数:平均每O( ...
分类:
其他好文 时间:
2017-10-24 22:42:39
阅读次数:
189
在这里提供三种线性筛的讲解,它们分别是:素数筛,欧拉筛和莫比乌斯筛。 ·筛法正确性的重要理论依据: 上述函数均为积性函数。积性函数的性质为:若f(x)是一个积性函数,那么对于任意素数a,b,满足f(ab)=f(a)*f(b) ·一些可爱的要点(有助于理解筛法原理): ①欧拉筛和莫比乌斯筛是以素数筛为... ...
分类:
其他好文 时间:
2017-10-24 14:13:03
阅读次数:
308
BZOJ 2818 Gcd 思路:枚举每个质数pi,求出∑phi[n/pi],对phi函数前缀和处理一下。 代码: 线性筛速度大约是普通筛法的5倍 ...
分类:
其他好文 时间:
2017-10-22 22:15:03
阅读次数:
141