hdu5317 RGCDQ 统计
// hdu5317 RGCDQ
//
// 题目大意:
//
// 给定一个闭区间[l,r],定义f(x)是x的不同的质因子的个数
// 比方: 12 = 2 * 2 * 3,是两种。所以f(x) = 2,问max GCD(f[i],f[j])
// i,j在[l,r]范围内,而且i!=j.
//
// 解题思路:
//
// 首先伟大的W神发现了一个规律。就是小于等于1e6不同的素因子个数不会超过7个
// 这样。我们就行统计出在1到i这个区间内,1-7各出现了多少次。最后R-(L-1)>=2
// 说明出现了两次以上,那么最大公约数就是此时的i啦。统计一下,然后O(1)求值。
//
// 感悟:
//
// 这道题,開始想复杂了,还和大神们一起讨论线段树怎么做。然后发现当时过的队伍好多,
// 就再没往这方面想,还是J大神最后秒了这题。确实挺巧妙的。当时的我就在卖萌。哎,
// 自己不会的千千万。不,应该说我就不会什么。继续加油吧!fighting!
//
// 非常奇怪的一点是在进行埃式筛法的时候開始将isp置为0或者置为1,所花费的时间天差地别,
// 后者TLE了n发。改过来之后1100多ms过了,这里实在想不通,假设有大神可以解答我的疑惑
// 小子定当不胜感激 #include <stdio.h>
#include <string.h>
#include <algorithm>
#include <iostream>
#include <vector>
#define For(i,x,y) for (int i = (x) ;i < (y) ;i ++)
using namespace std; const int MAX_N = 1000006;
int f[MAX_N];
bool isp[MAX_N];
int p[MAX_N];
int sum[MAX_N][10];
int l,r;
int cnt;
inline void init(){
cnt = 0;
memset(isp,0,sizeof(isp));
isp[0] = isp[1] = 0; for (int i=2;i<=MAX_N;i++){
if (!isp[i]){
p[cnt++] = i;
for (long long j = (long long) i * i;j < MAX_N;j+=i){
isp[j] = 1;
}
}
}
f[1] = 0;
for (int i=2;i< MAX_N;i++){
int x = i;
f[i] = 0;
for (int j=0;j<cnt && isp[x]==1;j++){
if (x%p[j]==0){
f[i]++;
while(x%p[j]==0){
x/=p[j];
}
}
}
if (x>1)
f[i]++;
} for (int i=1;i<8;i++)
sum[1][i] = 0; for (int i=2;i<=MAX_N;i++){
for (int j=1;j<8;j++)
sum[i][j] = sum[i-1][j];
for (int j=1;j<8;j++){
if (f[i]%j==0){
sum[i][j]++;
}
}
}
} inline void solve(){
scanf("%d%d",&l,&r);
int mx = 0;
for (int i=8;i>=1;i--){
if (sum[r][i] - sum[l-1][i] >= 2){
mx = i;
break;
}
}
printf("%d\n",mx); } int main(){
int t;
init();
//freopen("1.txt","r",stdin);
scanf("%d",&t);
while(t--){ solve();
}
}
hdu5317 RGCDQ 统计的更多相关文章
- 解题报告 之 HDU5317 RGCDQ
解题报告 之 HDU5317 RGCDQ Description Mr. Hdu is interested in Greatest Common Divisor (GCD). He wants to ...
- hdu5317 RGCDQ (质因子种数+预处理)
RGCDQ 题意:F(x)表示x的质因子的种数.给区间[L,R],求max(GCD(F(i),F(j)) (L≤i<j≤R).(2<=L < R<=1000000) 题解:可以 ...
- HDU-5317 RGCDQ ,暴力打表!
RGCDQ 暴力水题,很可惜比赛时没有做出来,理清思路是很简单的. 题意:定义f(i)表示i的素因子个数,给你一段区间[l,r],求max_gcd(f(i),f(j)).具体细节参考题目. 思路:数据 ...
- hdu5317 RGCDQ
Problem Description Mr. Hdu is interested in Greatest Common Divisor (GCD). He wants to find more an ...
- 2015 HDU 多校联赛 5317 RGCDQ 筛法求解
2015 HDU 多校联赛 5317 RGCDQ 筛法求解 题目 http://acm.hdu.edu.cn/showproblem.php? pid=5317 本题的数据量非常大,測试样例多.数据 ...
- HDU-5317
RGCDQ Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submi ...
- spark处理大规模语料库统计词汇
最近迷上了spark,写一个专门处理语料库生成词库的项目拿来练练手, github地址:https://github.com/LiuRoy/spark_splitter.代码实现参考wordmaker ...
- TFS 测试用例步骤数据统计
TFS系统集成了一套BI系统,基于SQL Server的Analysis Service进行实现的.通过这几年的深入使用,能够感触到这个数据数据仓库模型是多么的优秀,和微软官方提供的数据仓库示例Adv ...
- java统计字符串单词的个数
在一些项目中可能需要对一段字符串中的单词进行统计,我在这里写了一个简单的demo,有需要的同学可以拿去看一下. 本人没怎么写个播客,如果有啥说的不对的地方,你来打我啊 不说废话了直接贴代码: 实现代码 ...
随机推荐
- wifi hand
wpa airmon-ng start wlan0airodump-ng -c 6 -w logs wlan0monaireplay-ng -0 5 -a ap'mac -c clink'mac w ...
- 在idea中部署远程Tomcat
实现效果:在idea中点击run时,自动将代码编译并上传.部署到远程服务器中 和传统的在本地服务器相比较的优势:1.节省开发者开发机的资源,省去了本地服务器的CPU.内存的占用.2.如果开发的程序为A ...
- UVa11762 Race to 1
期望DP 一个数只能分解成不大于它的数,那么转移构成拓扑关系. 试了一下预处理出不大于x的质数个数,然而程序并没有变快 /*by SilverN*/ #include<algorithm> ...
- Java手机游戏开发简明教程 (SunJava开发者认证程序员 郎锐)
原文发布时间为:2008-07-30 -- 来源于本人的百度文章 [由搬家工具导入] Java手机游戏开发实例简明教程 (SunJava开发者认证程序员 郎锐)一、手机游戏编写基础1.手机游戏设计的基 ...
- ROS学习网址【原创】
ROS学习网址 http://www.ros.org/ http://www.ros.org/news/book/ http://wiki.ros.org/ http://blog.exbot.net ...
- debian6之eclipse和jdk安装
安装JDK 目前最新的JDK版本是:Java SE Development Kit 7u5 下载地址:http://www.oracle.com/technetwork/java/javase/dow ...
- asyncTask 的execute和executeOnExecutor 方法
asyncTask.execute Android.os.Build.VERSION_CODES.DONUT, this was changed to a pool of threads allowi ...
- 设计模式之状态模式(State)摘录
23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于怎样创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而 ...
- Qt中QVector与QList的应用
首先來看看QVector 的基本使用方式,建立一個可容納兩個元素的QVector ,並使用索引方式存取元素值:QVector<double> vect(2); vect[0] = 1.0; ...
- HDU3572Task Schedule(最大流 ISAP比較快)建图方法不错
Task Schedule Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...