//这个很好了。。。虽然是一般。。
int isp[1000100];
int p[1000100];
void init()
{
int sum=0;
int i,j;
fill(isp,isp+1000007,true);
for(i=2;i<=1000000;i++)
{
sum++;
if(!isp[i]) continue;
for(j=i+i;j<=1000000;j+=i)
{
sum++;
isp[j]=false;
}
}
int num=0;
for(i=2;i<=1000000;i++)
if(isp[i])
p[++num]=i;
}

题意:

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.后面就是手动枚举了一下。

其实弱学到的最好的就是这个线性搞出一个素数因子表。

#include <iostream>
#include <algorithm>
#include <stdio.h>
using namespace std; bool isPrime[1000001];
int cnt[1000001];
int sum[1000001][8];
void Init()
{
fill(isPrime, isPrime + 1000001, true);
for(int i = 2; i <= 1000000; ++i)
{
if(!isPrime[i])
continue;
++cnt[i];
for(int j = i + i; j <= 1000000; j += i)
{
isPrime[j] = false;
++cnt[j];
}
}
for(int i = 2; i <= 1000000; ++i)
for(int j = 1; j <= 7; ++j)
sum[i][j] = sum[i - 1][j] + (cnt[i] == j ? 1 : 0);
}
int main()
{
Init();
int T;
scanf("%d", &T);
while(T--)
{
int l, r;
scanf("%d%d", &l, &r);
int cnt[8] = {0};
for(int i = 1; i <= 7; ++i)
cnt[i] = sum[r][i] - sum[l - 1][i];
if(cnt[7] >= 2)
printf("7\n");
else if(cnt[6] >= 2)
printf("6\n");
else if(cnt[5] >= 2)
printf("5\n");
else if(cnt[4] >= 2)
printf("4\n");
else if(cnt[3] >= 2 || (cnt[3] && cnt[6]))
printf("3\n");
else if(cnt[2] >= 2 ||
(cnt[2] && cnt[4]) ||
(cnt[2] && cnt[6]) ||
(cnt[4] && cnt[6]))
printf("2\n");
else
printf("1\n");
}
return 0;
}
/*1 2 3 4 5 6 7*/
/*
7 7 7
6 6 6
5 5 5
4 4 4
3 3 3 3 6
2 2 2 2 4 2 6 4 6
*/

hdoj5317【素数预处理】的更多相关文章

  1. lightoj1259 【素数预处理】

    题意: 输出有多少对满足条件的(a,b) both a and b are prime; a+b=n a<=b; 思路: 一开始想的就是打表一个素数数组,然后还去二分..mdzz..直接判断一下 ...

  2. Codeforces 385C Bear and Prime Numbers(素数预处理)

    Codeforces 385C Bear and Prime Numbers 其实不是多值得记录的一道题,通过快速打素数表,再做前缀和的预处理,使查询的复杂度变为O(1). 但是,我在统计数组中元素出 ...

  3. Miller-Rabin素数检测算法

    遇到了一个题: Description: Goldbach's conjecture is one of the oldest and best-known unsolved problems in ...

  4. 【题解】CF264B Good Sequences

    [题解]CF264B Good Sequences 具有很明显的无后效性. 考虑\(dp\). 考虑初始条件,显然是\(dp(0)=0\) 考虑转移,显然是\(dp(t)=max(dp[k])+1\) ...

  5. 《TC训练赛一》题解!

    以下题目标题就是此题题目链接,题目内容为了节省篇幅就不粘上去了.整套题的链接:https://acm.bnu.edu.cn/v3/contest_show.php?cid=8679#info 密码:7 ...

  6. ECUST_Algorithm_2019_1

    简要题意及解析 1001 求\(a+b\). 数据范围很大,用int或者long long不行.Java和python可以使用大数直接写. 高精度加法:做法就是将数据读入字符串中,数组的每一个单元存一 ...

  7. qbxt五一数学Day3

    目录 1. 组合数取模 1. \(n,m\le 200\),\(p\) 任意 2. \(n,m\le 10^6\),\(p\ge 10^9\) 素数 3. \(n,m\le 10^6\),\(p\le ...

  8. UVA-10200-Prime Time-判断素数个数(打表预处理)+精度控制

    题意: 给出a.b区间,判断区间内素数所占百分比 思路: 注意提前打表和控制精度1e-8的范围足够用了 细节: 精度的处理 判断素数的方法(且返回值为bool) 数据类型的强制转换 保存素数个数 提前 ...

  9. hdu5317 RGCDQ (质因子种数+预处理)

    RGCDQ 题意:F(x)表示x的质因子的种数.给区间[L,R],求max(GCD(F(i),F(j)) (L≤i<j≤R).(2<=L < R<=1000000) 题解:可以 ...

随机推荐

  1. Android菜单menu控件大全

    下载:http://www.see-source.com/androidwidget/list.html?type=16 Android-NewPopupMenu 使用PopupWindow实现的Po ...

  2. Android四大组件的生命周期

    介绍生命周期之前,先提一下任务的概念 任务其实就是activity 的栈它由一个或多个Activity组成的共同完成一个完整的用户体验, 换句话说任务就是” 应用程序” (可以是一个也可以是多个,比如 ...

  3. 一个简单的QQ隐藏图生成算法 通过jQuery和C#分别实现对.NET Core Web Api的访问以及文件上传

    一个简单的QQ隐藏图生成算法   隐藏图不是什么新鲜的东西,具体表现在大部分社交软件中,预览图看到的是一张图,而点开后看到的又是另一张图.虽然很早就看到过这类图片,但是一直没有仔细研究过它的原理,今天 ...

  4. hibernate载入持久化对象的两种方式——get、load

    一.get与load对照 在hibernate中get和load方法是依据id取得持久化对象的两种方法.但在实际使用的过程中总会把两者混淆,不知道什么情况下使用get好,什么时候使用load方法效率更 ...

  5. openwrt procd

    接着前面写过的一篇关于 procd 的笔记. procd 在 STATE_INIT 时会运行 /etc/inittab 中描述的几个级别指定程序. procd_inittab_run("re ...

  6. SpringInAction4笔记——web

    1,java配置 extends AbstractAnnotationConfigDispatcherServletInitializer public class SpitterWebInitial ...

  7. iOS UI控件之间的关系图

  8. Uva 3902 Network

    题目大意: 在非叶子节点上安装最少的服务器使得,每个叶子节点到服务器的距离不超过k. 贪心+图上的dfs. 先从深度最大的叶子节点开始找.找到父节点后再用这个父节点进行扩充. /* ********* ...

  9. js运行机制及异步编程(一)

    相信大家在面试的过程中经常遇到查看执行顺序的问题,如setTimeout,promise,async await等等,各种组合,是不是感觉头都要晕掉了,其实这些问题最终还是考察大家对js的运行机制是否 ...

  10. proc_create的使用方法

    proc_create的使用方法 proc文件系统是个有用的东东.创建一个proc虚拟文件,应用层通过读写该文件,即可实现与内核的交互.proc虚拟文件是如何创建的呢? 先看看比较简单的,创建proc ...