Problem Description
Mr. Hdu is interested in Greatest Common Divisor (GCD). He wants to find more and more interesting things about GCD. Today He comes up with Range Greatest Common Divisor Query (RGCDQ). What’s RGCDQ? Please let me explain it to you gradually. For a positive
integer x, F(x) indicates the number of kind of prime factor of x. For example F(2)=1. F(10)=2, because 10=2*5. F(12)=2, because 12=2*2*3, there are two kinds of prime factor. For each query, we will get an interval [L, R], Hdu wants to know maxGCD(F(i),F(j)) (L≤i<j≤R)
 

Input
There are multiple queries. In the first line of the input file there is an integer T indicates the number of queries.

In the next T lines, each line contains L, R which is mentioned above.

All input items are integers.

1<= T <= 1000000

2<=L < R<=1000000
 

Output
For each query,output the answer in a single line. 

See the sample for more details.
 

Sample Input

2
2 3
3 5
 

Sample Output

1

1

题意:定义了一个函数F(x),表示x这个数的不同素数因数的个数,然后给你一个区间[L,R],问你任意区间内不同的两个数的最大公约数是多少,这里要发现1000000范围内的最大不同素数因数个数是7,所以用dp[i][j]保存从1到i这i个数不同素数因数的个数。这里先预处理1~1000000的数的不同素数因数的个数,可以用普通素数筛法(这里线性筛法好像不能用,因为线性筛法只能求出这个数的素数因数个数和因数个数)。

#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#include<vector>
#include<map>
#include<set>
#include<queue>
#include<stack>
#include<string>
#include<algorithm>
using namespace std;
#define maxn 1000000
int vis[maxn+10],prime[maxn+10],tot,dp[maxn+10][10],cnt[maxn+10];
void init()
{
int i,j;cnt[1]=0;
for(i=2;i<=maxn;i++){
if(!vis[i]){
cnt[i]=1;
for(j=2*i;j<=maxn;j+=i){
vis[j]=1;
cnt[j]++;
}
}
}
for(i=1;i<=7;i++){
dp[1][i]=0;
}
for(i=2;i<=maxn;i++){
for(j=1;j<=7;j++){
dp[i][j]=dp[i-1][j];
}
dp[i][cnt[i]]++;
}
} int main()
{
int n,m,i,j,T;
int num1[10];
init();
scanf("%d",&T);
while(T--)
{
scanf("%d%d",&n,&m);
for(i=1;i<=7;i++){
num1[i]=dp[m][i]-dp[n-1][i];
}
if(num1[7]>=2){
printf("7\n");continue;
}
if(num1[6]>=2){
printf("6\n");continue;
}
if(num1[5]>=2){
printf("5\n");continue;
}
if(num1[4]>=2){
printf("4\n");continue;
}
if(num1[3]>=2 || (num1[6]==1 && num1[3]==1)){
printf("3\n");continue;
}
if(num1[2]>=2 || (num1[6]==1 && num1[4]==1) || (num1[6]==1 && num1[2]==1) || (num1[4]==1 && num1[2]==1)){
printf("2\n");continue;
}
printf("1\n");
}
return 0;
}

hdu5317 RGCDQ的更多相关文章

  1. hdu5317 RGCDQ 统计

    // hdu5317 RGCDQ // // 题目大意: // // 给定一个闭区间[l,r],定义f(x)是x的不同的质因子的个数 // 比方: 12 = 2 * 2 * 3,是两种.所以f(x) ...

  2. 解题报告 之 HDU5317 RGCDQ

    解题报告 之 HDU5317 RGCDQ Description Mr. Hdu is interested in Greatest Common Divisor (GCD). He wants to ...

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

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

  4. HDU-5317 RGCDQ ,暴力打表!

    RGCDQ 暴力水题,很可惜比赛时没有做出来,理清思路是很简单的. 题意:定义f(i)表示i的素因子个数,给你一段区间[l,r],求max_gcd(f(i),f(j)).具体细节参考题目. 思路:数据 ...

  5. HDU 5317 RGCDQ (数论素筛)

    RGCDQ Time Limit: 3000MS   Memory Limit: 65536KB   64bit IO Format: %I64d & %I64u Submit Status ...

  6. 数学+dp HDOJ 5317 RGCDQ

    题目传送门 /* 题意:给一个区间,问任意两个数的素数因子的GCD最大 数学+dp:预处理出f[i],发现f[i] <= 7,那么用dp[i][j] 记录前i个f[]个数为j的数有几个, dp[ ...

  7. 2015 HDU 多校联赛 5317 RGCDQ 筛法求解

    2015 HDU 多校联赛 5317 RGCDQ 筛法求解 题目  http://acm.hdu.edu.cn/showproblem.php? pid=5317 本题的数据量非常大,測试样例多.数据 ...

  8. 2015 Multi-University Training Contest 3 1002 RGCDQ

    RGCDQ Problem's Link: http://acm.hdu.edu.cn/showproblem.php?pid=5317 Mean: 定义函数f(x)表示:x的不同素因子个数. 如:f ...

  9. HDU-5317

    RGCDQ Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submi ...

随机推荐

  1. 天梯赛练习 L3-010 是否完全二叉搜索树 (30分) 数组建树模拟

    题目分析: 本题的要求是将n个数依次插入一个空的二叉搜索树(左大右小,且没有重复数字),最后需要输出其层次遍历以及判断是否是完全二叉搜索树,通过观察我们发现, 如果这个树是用数组建立的,那么最后输出的 ...

  2. 2.jmeter组件介绍

    jmeter默认语言设置:  1.临时设置: 进入options -- Choose Language -- 选择中文简体,设置后语言  切换成中文,重启失效  2.永久设置:进入jmeter目录下的 ...

  3. 【Docker】Docker概述、理解docker的集装箱、标准化、隔离的思想、 docker出现解决了什么问题

    整理一下 慕课网 第一个docker化的java应用 Docker环境下的前后端分离项目部署与运维 课程时所做的笔记 Docker概述 docker - https://www.docker.com/ ...

  4. kubernets之pod的删除方式

    一 删除单个pod 1  删除指定命名空间的指定名称的pod k delete po kubia-manual -n defaultpod "kubia-manual" delet ...

  5. leetcode230. 二叉搜索树中第K小的元素

    题目链接: https://leetcode-cn.com/problems/kth-smallest-element-in-a-bst/ 题目: 给定一个二叉搜索树,编写一个函数 kthSmalle ...

  6. mysql:如何解决数据修改冲突(事务+行级锁的实际运用)

    摘要:最近做一个接诊需求遇到一个问题,假设一个订单咨询超过3次就不能再接诊,但如果两个医生同时对该订单进行咨询,查数据库的时候查到的接诊次数都是2次,那两个医生都能接诊,所谓接诊可以理解为更新了接诊次 ...

  7. 2020年12月18号--21号 人工智能(深度学习DeepLearning)python、TensorFlow技术实战

    深度学习DeepLearning(Python)实战培训班 时间地点: 2020 年 12 月 18 日-2020 年 12 月 21日 (第一天报到 授课三天:提前环境部署 电脑测试) 一.培训方式 ...

  8. 如何安装快速 Docker 和 Docker-Compose 服务

    最近由于个人在大家基于 Docker  的.企业级的CI/CD 环境,所以要安装 Docker 和 Docker-Compose ,这也算是一个学习过程,就把整个过程记录下来,便于以后查询. 测试环境 ...

  9. 转 16 jmeter中的监听器以及测试结果分析

    16 jmeter中的监听器以及测试结果分析   常用监听器 断言结果.查看结果树.聚合报告.Summary Report.用表格查看结果.图形结果.aggregate graph等 指标分析 -Sa ...

  10. API服务接口签名代码与设计,如果你的接口不走SSL的话?

    在看下面文章之前,我们先问几个问题 rest 服务为什么需要签名? 签名的几种方式? 我认为的比较方便的快捷的签名方式(如果有大神持不同意见,可以交流!)? 怎么实现验签过程 ? 开放式open ap ...