素数
keyboarder_zsq
你所认为的极限,其实是别人的起点。
展开
-
hdoj5317【素数预处理】
题意: F(x):对于x的素数因子的种类个数。 给t(<=1e6)个查询,每个查询给出L,R(<=1e6),求在区间[L,R]内求一个maxGCD(F(i),F(j)) F(i)肯定<7; 思路: 计数一下,然后后面直接搞; 用sum数组表示从1->i有数量j的个数。 最终他的个数有>=2的话可以,或者还有一种情况就是6/2或者6/3的最大公约数是2/3.后面就是手动枚举了一下。 其原创 2016-07-24 01:05:59 · 497 阅读 · 0 评论 -
lightoj1259 【素数预处理】
题意: 输出有多少对满足条件的(a,b) both a and b are prime; a+b=n a<=b; 思路: 一开始想的就是打表一个素数数组,然后还去二分。。mdzz。。直接判断一下n-A[I]是不是素数和是不是>=A[I]就好了。 都能标记何必二分…= =、我比较蠢。。 然后是内存爆了。。 后来标记的需要开bool,而且那个记录素数的数组最好开小; 以后int a[原创 2016-09-13 21:03:14 · 430 阅读 · 0 评论 -
51nod1181【素数筛】
思路:直接就是筛出素数,然后我很撒比的从那个地方往后for找一个位置也是质数的输出;#include using namespace std;typedef long long LL;const int N=1e6+10;bool IsPrime[N];int prime[N];int num;void init(){ num=0; memset(Is原创 2016-10-12 22:58:22 · 485 阅读 · 0 评论 -
LightOJ1197【数学】
引自:WONTER题意:给你两个数,a,b,让你求区间[a,b]里面有多少个素数;思路:首先要知道,我们要想筛 [1, b] 中所有的素数,只需要用到 [1, sqrt(b)] 中的所有素数来筛就可以了。假设我们是求 [1, b] 中所有的素数,我们就只需要打表出 [1, sqrt(b)] 的素数,然后用这些素数直接去套用常规的素数筛选方法就好了,也就是(j = p原创 2016-10-07 00:27:03 · 769 阅读 · 0 评论 -
lightoj 1035【暴力】
思路:预处理一下素数数组,然后暴力计算就好了。类似处理素数因子;#include #include #include #include using namespace std;typedef long long LL;const long long INF=0x3f3f3f3f;const int N=1e2+10;int prime[N],ans[N];bool原创 2016-10-31 17:49:53 · 447 阅读 · 0 评论 -
AtCoder Beginner Contest 052
没看到Beginner,然后就做啊做,发现A,B太简单了。。。然后想想做完算了。。没想到C卡了一下,然后还是做出来了。D的话瞎想了一下,然后感觉也没问题。假装allkill.2333AtCoder Beginner Contest 052 A题意:输出大的面积?思路:max(A*B,C*D);AtCoder Beginner Contest 052 B题意:枚举过程原创 2017-02-27 21:23:52 · 611 阅读 · 0 评论